2016-06-29 113 views
1

有沒有辦法通過一次呼叫在NetSuite中檢索數組或特定庫存物品清單?我似乎無法找到任何關於此的文檔。我已經通過了SuiteTalk培訓課程,並且沒有包含任何關於檢索沒有內部ID的項目列表的信息。從NetSuite獲取庫存物品清單

this document的第73頁,有一個函數getInventoryItemList(itemKeysArray),該函數使用庫存項目ID的數組調用。然而,這個函數並不存在,我假設是一個自定義函數,但他們從不顯示代碼。

我只能看到這樣做的兩種方式是將每個庫存項目從NetSuite中提取出來,並將internalID導入到本地數據庫中,這對我來說看起來像是一項額外的工作。我想到的另一個選擇是遍歷行項目的數組,併爲每個元素執行ItemSearchBasic並以這種方式獲取internalID,這看起來不像將它們存儲在本地數據庫中更糟糕的想法。我希望有人能夠證實並告訴我是否有更簡單的方法來做我所需要的。

回答

1

以下是當我需要獲取項目列表(減去公司特定數據)時使用的版本。我剛剛刪除了我們的數據,並將其設置爲/返回一個數組。這是在SuiteScript 2.0中,僅供參考。

require(['N/search','N/record'],function(search,record){ 
    function buildItemArray(){ 
    var itemArray=[]; 
    searchItems(); 
    itemArray=runSearch(itemArray); 
    deleteSearch(); 
    log.debug(itemArray); 
    } 

    function searchItems(context){ 
    var itemSearch=search.create({ 
     type:search.Type.INVENTORY_ITEM, 
     title:'Inventory_Item_Search', 
     id:'customsearch_inventory_item_search', 
     columns:['internalid','itemid'], 
     filters:['isinactive','is','F'] 
    }); 
    itemSearch.save(); 
    } 

    function runSearch(itemArray){ 
    var mySearch=search.load({id:'customsearch_inventory_item_search'}); 
    mySearch.run().each(function(result){ 
     var item={}; 
     item.itemID=result.getValue({name:'itemid'}); 
     item.internalID=result.getValue({name:'internalid'}); 
     itemArray.push(item); 
     return true; 
    }); 
    return itemArray; 
    } 

    function deleteSearch(){ 
    search.delete({id:'customsearch_inventory_item_search'}); 
    } 

    buildItemArray(); 
}); 
1

有很多方法可以做到這一點,但從訂單項中收集項目ID的想法是我通常使用的。

然後,您可以使用GetList檢索有關每個項目的詳細信息。

+0

你有沒有其他方法的例子?我可能會最終將id的關閉存儲在本地數據庫中,但我很好奇你提到的其他方法。 – Yamaha32088

+0

當您撰寫有關訂單項的信息時,我假設您擁有交易記錄。例如,銷售訂單具有包含SalesOrderItems的SalesOrderItemList。你可以通過這些步驟並提取項目refs.This給你一個特定項目的列表。您可以使用GetList方法在一次調用中檢索這些項目的所有詳細信息。如何存儲ID幫助你?也許我不明白你的用例。 – bknights

+0

我正在嘗試創建一個新的SalesOrder。我需要內部ID來將庫存項目添加到SalesOrder訂單項,以便它可以插入。希望這是有道理的。 – Yamaha32088

相關問題