我想处理从 Search Results 获得的搜索结果中的第一组千条记录,然后处理下一组千条记录。
我正在使用 suitescript 2.0 版本“N/search”模块的方法 (getRange(0,1000)) 中提供的方法获取第一组千条记录。
代码:
var mySearch = search.load({
id: 'customsearch_employee'
});
var searchResult = mySearch.run().getRange(0, 100);
for (var i = 0; i < searchResult.length; i++) {
var entity = searchResult[i].getValue({
name: 'entity'
});
});
我想知道如何使用 for 循环处理下一组千条记录。 提前致谢
最佳答案
SuiteScript 2.0 为您提供了分页 API。我会先解释一下,然后再举个例子。
在您创建搜索对象 mySearch
之后,您可以调用 runPaged()
来运行分页搜索,而不是调用 run()
,它有一个可选的 pageSize
参数,允许您指定每页有多少结果。默认值为 50
。
runPaged
返回一个 PagedData
对象,该对象在其 pageRanges
属性中包含结果页面列表。实际上,您通过在页面上调用 fetch
来检索每个页面上的结果。
此示例直接取自 N/search
的帮助页面,但我添加了一些解释性注释。
/**
*@NApiVersion 2.x
*/
require(['N/search'], function(search) {
function loadAndRunSearch() {
// Load your search into memory
var mySearch = search.load({
id: 'customsearch_my_so_search'
});
// Run paged version of search with 1000 results per page
var myPagedData = mySearch.runPaged({
"pageSize": 1000
});
// Iterate over each page
myPagedData.pageRanges.forEach(function(pageRange){
// Fetch the results on the current page
var myPage = myPagedData.fetch({index: pageRange.index});
// Iterate over the list of results on the current page
myPage.data.forEach(function(result){
// Process the individual result
var entity = result.getValue({
name: 'entity'
});
var subsidiary = result.getValue({
name: 'subsidiary'
});
});
});
}
loadAndRunSearch();
});
关于javascript - 如何在 Netsuite 'N/search Module' 中使用 for 循环获取第一组千条记录和下一组千条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38650644/