Netsuite 如何限制SuiteScript(1或2)中的搜索结果?

Netsuite 如何限制SuiteScript(1或2)中的搜索结果?,netsuite,suitescript,Netsuite,Suitescript,有没有办法限制通过SuiteScript返回的记录数量?我使用以下方法,但搜索仍然会得到所有结果。如果我达到了我想要返回的最大值,我将打破结果的迭代。我在文档中找不到任何东西 在UI中,似乎可以限制返回的结果,尽管我在这方面运气不好。(可能是因为我要加入…) var accountSearch=search.create({ 类型:search.type.CUSTOMER, 列:搜索列, 过滤器:搜索过滤器 }); var searchResultsPagedData=accountSearc

有没有办法限制通过SuiteScript返回的记录数量?我使用以下方法,但搜索仍然会得到所有结果。如果我达到了我想要返回的最大值,我将打破结果的迭代。我在文档中找不到任何东西

在UI中,似乎可以限制返回的结果,尽管我在这方面运气不好。(可能是因为我要加入…)

var accountSearch=search.create({
类型:search.type.CUSTOMER,
列:搜索列,
过滤器:搜索过滤器
});
var searchResultsPagedData=accountSearch.runPaged({
“页面大小”:1000
});
var max=9;
对于(var pageIndex=0;pageIndex=最大值)
打破
var searchPage=searchResultsPagedData.fetch({index:pageRange.index});
//迭代当前页面上的结果列表
searchPage.data.forEach(函数(结果){
}
}

为什么不将页面大小设置为所需的最大结果数,并且只迭代第一页(第0页)或者,如果您要查找1000个以上的结果,您可以通过设置
pageIndex
来限制页数,而不是
pageIndex

为什么不将页面大小设置为所需的最大结果数,并且只在第一页(第0页)上迭代或者,如果您要查找1000个以上的结果,可以通过设置
pageIndex
而不是
pageIndex

使用
getRange
而不是
每个
来限制页数,以迭代您的结果。
getRange
允许您指定一个
开始
end
索引获取结果的特定部分。

使用
getRange
而不是
每个
来迭代您的结果。
getRange
允许您指定
开始
结束
索引来获取结果的特定部分。

另一种方法:从注释来看,它似乎是一种方法您遇到的问题中有一个正在运行到执行限制,因此您可以加载
N/runtime
模块,并在每次获取之前使用该模块,以确保您有足够的治理单元,如果没有,则中断或返回。

另一种方法:从注释来看,您遇到的问题之一似乎正在运行到执行限制,因此您可以加载
N/runtime
模块,并在每次获取之前使用,以确保您有足够的治理单元剩余,如果没有,则中断或返回。

我几乎总是在查找1000多行,因为我将结果限制为10000行。在某些情况下,搜索结果可能是数十万行。我试图避免首先获取它们。如果您不想要所有行,那么进行搜索有什么意义?您试图实现什么?例如,您是否最好使用聚合函数来缩小范围?如果您在最大页面上突破,您将通过突破
搜索页面来保存所有内容。data.forEach
将处于启用状态e页面值得搜索。你希望得到什么?如果我能弄清楚的话,我可能最好使用聚合函数。我不需要所有的行,因为结果将以图形方式显示给用户。(地图上的图钉)没有人需要在地图上看到20万个PIN。我正在破坏,因为如果结果集有30页,而我不需要它们,那么获取这些结果是没有意义的。NetSuite有一个执行限制,出于某种原因,我正在点击它。这与这个问题无关(我想)但是我想我会覆盖所有的基础。NetSuite不会返回结果,除非您使用
PagedData.fetch
Search.runPaged
只返回有关分页结果的摘要信息。因此,如果您只在前x页上运行
.fetch
方法,您应该只使用e第一个x*pageSize结果。@Krypton感谢您的确认。我不知道我的脚本为什么超时,但正如我所说的,我想确保我没有遗漏任何内容。我想这不是一个很有价值的问题。我的意思是,它只有10K条记录……我几乎总是在查找1000多行,因为我将结果限制为10000。在s中在某些情况下,搜索结果可能是数十万行。我试图首先避免获取它们。如果您不想要所有行,那么进行搜索有什么意义?您试图实现什么?例如,您是否最好使用聚合函数来缩小范围?如果您突破了最大页数限制,则执行搜索l您可以通过打破
searchPage.data.forEach
的搜索页面进行保存。您希望获得什么?如果我能弄清楚,我可能最好使用聚合函数。我不需要所有行,因为结果将以图形方式显示给用户。(地图上的图钉)没有人需要在地图上看到20万个PIN。我正在破坏,因为如果结果集有30页,而我不需要它们,那么获取这些结果是没有意义的。NetSuite有一个执行限制,出于某种原因,我正在点击它。这与这个问题无关(我想)但是我想我会覆盖所有的基础。NetSuite不会返回结果,除非您使用
PagedData.fetch
Search.runPaged
只返回有关分页结果的摘要信息。因此,如果您只在前x页上运行
.fetch
方法,您应该只使用e第一个x*pageSize结果。@Krypton感谢您的确认。我不知道为什么我的脚本超时,但正如我所说的,我想确保我没有遗漏任何东西。我想这不是我的错
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) {
    }
}