有没有办法限制通过SuiteScript返回的记录数量?我使用以下方法,但搜索仍然获得所有结果。如果我已达到最大值,我想要退回,我正在打破结果的迭代。我在文档中找不到任何内容。
在用户界面中,看起来人们可以限制返回的结果,即使我没有多少运气。 (也许是因为我加入......)
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 :(得分:4)
为什么不将页面大小设置为您想要的最大结果数量,只迭代第一页(第0页)?或者,如果您要查找超过1000个结果,则可以通过设置pageIndex < max;
而不是pageIndex < searchResultsPagedData.pageRanges.length;
来限制页数
答案 1 :(得分:4)
使用getRange
代替each
来迭代结果。 getRange
允许您指定start
和end
索引以获取结果的特定切片。
答案 2 :(得分:1)
另一种方法:从评论中看来,您遇到的问题之一似乎是遇到了执行限制,因此您可以加载N/runtime
模块并在每次提取前使用Script.getRemainingUsage()以确保您剩下足够的治理单位 - 如果不这样做就会中断或返回。