有没有办法通过一次调用在NetSuite中检索数组或特定库存项目列表?我似乎无法找到任何有关此问题的文件。我已经完成了SuiteTalk培训课程,但它不包含任何有关检索没有internalID的项目列表的信息。
在this document的第73页,有一个函数getInventoryItemList(itemKeysArray)
,它使用一系列广告资源ID来调用。但是这个函数在任何地方都不存在,我假设它是一个自定义函数,但它们从不显示它的代码。
我能看到的唯一两种方法是将每个库存项目从NetSuite中取出并将内部ID导入我们的本地数据库,这对我来说似乎是一项额外的工作。我想到的另一个选项是遍历一个行项目的数组并为每个元素执行ItemSearchBasic并以这种方式获取internalID,这似乎比仅将它们存储在本地数据库中更糟糕。我希望有人可以确认并告诉我是否有更简单的方法来做我需要的事情。
答案 0 :(得分:1)
有很多方法可以做到,但是从订单项中收集商品ID的想法是我通常使用的。
然后,您可以使用GetList检索有关每个项目的详细信息。
答案 1 :(得分: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();
});