【发布时间】:2020-10-13 02:17:05
【问题描述】:
我目前正在 NetSuite 中构建一个 map/reduce 脚本,它将保存的搜索结果从 getInputData 阶段传递到 map 阶段。这是通过首先在 getInputData 阶段运行 WHILE 循环来获取每个条目的内部 id,插入到数组中,然后传递到 map 阶段来完成的。像这样:
// run saved search - unlimited rows from saved search.
do {
var subresults = invoiceSearch.run().getRange({ start: start, end: start + pageSize });
results = results.concat(subresults);
count = subresults.length;
start += pageSize + 1;
} while (count == pageSize);
var invSearchArray = [];
if(invoiceSearch){
//NOTE: .run().each has a limit of 4,000 results, hence the do-while loop above.
for (var i = 0; i < results.length; i++){
var invObj = new Object();
invObj['invID'] = results[i].getValue({name: 'internalid'});
invSearchArray.push(invObj);
}
}
return invSearchArray;
我以这种方式实现它是因为我担心会有结果限制,就像“.run().each”函数一样(限制为 4000 个结果)。
我假设将搜索对象直接从 getInputData 传递到 Map 也会限制 4000 个结果。有人可以澄清是否有这样的限制吗?由于在 map/reduce 脚本的 getInputData 阶段无法处理超过 4000 的搜索结果,我是否担心脚本会过早停止?
任何帮助我理解如何在 map/reduce 脚本中处理搜索对象的示例将不胜感激。
谢谢
【问题讨论】:
标签: mapreduce netsuite suitescript suitescript2.0