如何限制 SuiteScript 中的搜索结果(1 或 2)?
How to limit search result in SuiteScript (1 or 2)?
有没有办法限制通过 SuiteScript return编辑的记录数量?我使用下面的方法,但是搜索仍然得到所有的结果。如果我达到了我想要 return 的最大值,我将打破结果的迭代。我在文档中找不到任何内容。
在 UI 中,似乎可以限制 returned 结果,尽管我不太幸运。 (也许是因为我要加入...)
var accountSearch = search.create({
type: search.Type.CUSTOMER,
columns: searchColumns,
filters: searchFilters
});
var searchResultsPagedData = accountSearch.runPaged({
'pageSize': 1000
});
var max = 9;
for (var pageIndex = 0; pageIndex < searchResultsPagedData.pageRanges.length; pageIndex++) {
var pageRange = searchResultsPagedData.pageRanges[pageIndex];
if (pageRange.index >= max)
break;
var searchPage = searchResultsPagedData.fetch({ index: pageRange.index });
// Iterate over the list of results on the current page
searchPage.data.forEach(function (result) {
}
}
为什么不将页面大小设置为您想要的最大结果数,并且只迭代第一页(第 0 页)?或者,如果您要查找超过 1000 个结果,您可以通过设置 pageIndex < max;
而不是 pageIndex < searchResultsPagedData.pageRanges.length;
来限制页数
使用 getRange
而不是 each
来迭代您的结果。 getRange
允许您指定 start
和 end
索引以获取特定的结果片段。
另一种方法:从评论看来,您遇到的问题之一是 运行 进入执行限制,因此您可以加载 N/runtime
模块并使用 Script.getRemainingUsage()在每次提取之前确保您有足够的治理单元 - 如果没有,则中断或 return。
有没有办法限制通过 SuiteScript return编辑的记录数量?我使用下面的方法,但是搜索仍然得到所有的结果。如果我达到了我想要 return 的最大值,我将打破结果的迭代。我在文档中找不到任何内容。
在 UI 中,似乎可以限制 returned 结果,尽管我不太幸运。 (也许是因为我要加入...)
var accountSearch = search.create({
type: search.Type.CUSTOMER,
columns: searchColumns,
filters: searchFilters
});
var searchResultsPagedData = accountSearch.runPaged({
'pageSize': 1000
});
var max = 9;
for (var pageIndex = 0; pageIndex < searchResultsPagedData.pageRanges.length; pageIndex++) {
var pageRange = searchResultsPagedData.pageRanges[pageIndex];
if (pageRange.index >= max)
break;
var searchPage = searchResultsPagedData.fetch({ index: pageRange.index });
// Iterate over the list of results on the current page
searchPage.data.forEach(function (result) {
}
}
为什么不将页面大小设置为您想要的最大结果数,并且只迭代第一页(第 0 页)?或者,如果您要查找超过 1000 个结果,您可以通过设置 pageIndex < max;
而不是 pageIndex < searchResultsPagedData.pageRanges.length;
使用 getRange
而不是 each
来迭代您的结果。 getRange
允许您指定 start
和 end
索引以获取特定的结果片段。
另一种方法:从评论看来,您遇到的问题之一是 运行 进入执行限制,因此您可以加载 N/runtime
模块并使用 Script.getRemainingUsage()在每次提取之前确保您有足够的治理单元 - 如果没有,则中断或 return。