如何限制 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 允许您指定 startend 索引以获取特定的结果片段。

另一种方法:从评论看来,您遇到的问题之一是 运行 进入执行限制,因此您可以加载 N/runtime 模块并使用 Script.getRemainingUsage()在每次提取之前确保您有足够的治理单元 - 如果没有,则中断或 return。