从 NetSuite 获取库存项目列表

Get list of inventory items from NetSuite

有没有办法通过一次调用在 NetSuite 中检索特定库存项目的数组或列表?我似乎找不到与此相关的任何文档。我已经完成了 SuiteTalk 培训课程,它不包含任何关于在没有内部 ID 的情况下检索项目列表的信息。

this document 的第 73 页上有一个函数 getInventoryItemList(itemKeysArray),它使用一组库存项目 ID 调用。但是这个函数在任何地方都不存在,我假设是一个自定义函数,但他们从不显示它的代码。

我能看到的唯一两种方法是从 NetSuite 中提取每个库存项目并将内部 ID 导入我们的本地数据库,这对我来说似乎是很多额外的工作。我想到的另一个选择是遍历行项目数组并为每个元素执行 ItemSearchBasic 并以这种方式获取 internalID,这似乎比将它们存储在本地数据库中更糟糕。我希望有人可以确认并告诉我是否有更简单的方法来做我需要的事情。

有多种方法可以做到这一点,但我通常使用的是从订单项中收集项目 ID 的想法。

然后您可以使用 GetList 检索有关每个项目的详细信息。

这是我在需要获取项目列表(减去公司特定数据)时使用的版本。我刚刚删除了我们的数据,并将其设置为 build/return 数组。这是在 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();
});