javascript - 如何在 Netsuite 'N/search Module' 中使用 for 循环获取第一组千条记录和下一组千条记录

标签 javascript arrays for-loop netsuite suitescript

我想处理从 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/

相关文章:

javascript - 为 rspec 2.10 Rails 3.1 View 规范测试启用 JavaScript

javascript - 如何为 GitHub Pages 生成 JavaScript API 文档

javascript - 从另一个元素中过滤一个二维数组

javascript - 谷歌应用可视化可以吗?具有缩放选项的时间轴

javascript - 你如何阻止下拉菜单上升?

Java程序不喜欢这个词 "Scanner"

javascript - 创建动态关联数组

python - Numpy 使用 zip 在 for 循环中附加

c# - for循环是否计算循环期间添加到自身的元素?

for-loop - AWK:用类似于FNR==NR方法的方法连接并处理三个或更多文件