我无法获取item列表.我正在使用已保存的搜索,并希望从中创建所有项目记录ID的列表.但它没有用.
我的代码
var loadSearch=nlapiLoadSearch('item','customsearch12');
var getData = loadSearch.runSearch();
var itemCol=new Array();
for(var i=0;i<getData.length;i++)
{
itemCol.push(getData[i].getId());
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我这个
小智 6
try this code
var loadSearch=nlapiLoadSearch('item','customsearch12');
var getData = loadSearch.runSearch();
var itemCol=new Array();
getData.forEachResult(function (searchRow) {
itemCol.push(searchRow.getId());
return true;
});
Run Code Online (Sandbox Code Playgroud)
when you use a nlapiLoadSearch, the result is nlobjSearchResultSet and not an array like in the case of nlapiSearchRecord.
if you use nlapiSearchRecord, then you can loop through the result like you were trying in your code, i.e. using index
Nitish上面给出的答案是完全正确的,但你还需要考虑一件事.
nlapiLoadSearch api一次返回4000条记录.
nlapiSearchRecord api一次只返回1000条记录,那么如果您保存的搜索包含超过1000条记录,那该怎么办呢?
所以你会错过那些额外的物品.
所以这里的代码有更好的结果
//Searching the items
var searchResults = nlapiSearchRecord('item', 'customsearch12',null,null);
var searchedItemId;
var lastId;
var completeResults = new Array();
var arrNewFilters=[];
if (searchResults != null) {
completeResults = completeResults.concat(searchResults);
}
else {
completeResults = null;
nlapiLogExecution('Debug', 'No item found',
weight + ' Null result');
}
if (completeResults != null) {
if (searchResults.length == 1000) {
while (searchResults.length == 1000) {
//Initialize variable
lastId = "";
//Get Record Id of Last record,
//to search the item record again from that record
lastId = searchResults[999].getId();
//start after the last id searched
arrNewFilters.push(new nlobjSearchFilter("internalidnumber",
null, "greaterthan", lastId));
//Lets search again
var searchResults = nlapiSearchRecord('item', 'customsearch12',
arrNewFilters, null);
if (searchResults != null) {
//Append the search result to the result present before
completeResults = completeResults.concat(searchResults);
}
}
}
for (var result = 0; result < completeResults.length; result++) {
//Loop through the items
}
Run Code Online (Sandbox Code Playgroud)
希望你能给我Nitish !!!
| 归档时间: |
|
| 查看次数: |
2746 次 |
| 最近记录: |