几年前,我编写了一个脚本(如下)(此后就没有编写过代码 - 所以有相当多的内容或生锈;D),其中 ResultSet 现在超过 4000 条记录,这是编写脚本时没有预料到的。错误如下:
{"type":"error.SuiteScriptError","name":"SSS_SEARCH_FOR_EACH_LIMIT_EXCEEDED","message":"nlobjSearchResultSet.forEachResult(callback) 一次返回的搜索结果不能超过 4000 个。请修改您的搜索条件或修改回调逻辑,使返回结果不超过4000条。”...
解决此问题的最佳方法是使用不同的技术(例如 Map/Reduce - 我现在必须学习),或者是否有一种方法可以过滤搜索,以便从搜索中仅返回一定数量的结果,并且其余记录在后续执行中返回/处理吗?
谢谢
//...
invoiceSearch.run().each(function(result) {
// ensure script usage okay
if (usageOkay()) {
entityID = result.getValue({
'name': 'internalid',
'join': 'customer',
'summary': search.Summary.GROUP
});
var maxAmountCustomerRecord = result.getValue({
'name': 'custentity_amount_maxorder_2years',
'join': 'customer',
'summary': search.Summary.GROUP
});
var maxAmountCalculated = result.getValue({
'name': 'formulacurrency',
'formula': 'CASE WHEN {closedate} >= ADD_MONTHS(SYSDATE, -(12 * 2)) THEN {amount} ELSE NULL END',
'summary': search.Summary.MAX
});
// in case the calculated amount is null then …Run Code Online (Sandbox Code Playgroud)