paging - 如何在 Netsuite 中实现 Paging?

标签 paging netsuite

Netsuite 一次仅返回 1000 条记录,当我尝试获取超过 1000 条记录时,它会超时。为了解决这个问题,我们可以使用分页机制。 有没有人有在 NetSuite 中进行分页的经验?提前致谢。

最佳答案

您可以使用以下代码获取无限结果(SuiteScript 1.0):

var search = nlapiLoadSearch(null, SAVED_SEARCH_ID).runSearch();
var res = [],
    PAGE_SIZE = 1000, //MAX 1000, you can lower it than 1000 if search times out
    currentRes;

var i = 0;

while(i % PAGE_SIZE === 0){
  currentRes = (search.getResults(i, i+PAGE_SIZE) || []);
  res = res.concat(currentRes );
  i = i + currentRes.length;
}

就是说,search.getResults(page*PAGE_SIZE, (page*PAGE_SIZE + PAGE_SIZE)) 应该给您第 n 页的结果。请注意,getResults() 具有与其关联的 API 治理点。

从2016.1开始,SuiteScript 2.0增加了用于分页搜索结果的API,代码片段如下:

/**
 *@NApiVersion 2.x
*/
require(['N/search'],
    function(search) {
        function loadAndRunSearch() {
            var mySearch = search.load({
                id: 'customsearch_my_so_search'
            });
            var myPagedData = mySearch.runPaged();
            myPagedData.pageRanges.forEach(function(pageRange) {
                var myPage = myPagedData.fetch(pageRange);
                myPage.data.forEach(function(result) {
                    var entity = result.getValue('entity');
                    var subsidiary = result.getValue('subsidiary');
                });
            });
        }
        loadAndRunSearch();
    });

关于paging - 如何在 Netsuite 中实现 Paging?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35473909/

相关文章:

android-studio - 相同的值作为 nextKey 在从 Paging Library 3 Android 中的 PagingSource 加载的两个连续页面中传递

sql-server - 在Sql Server 2008中使用Row_Number实现表分页是否存在性能问题?

ios - 在 CoreData 中设置 NSFetchRequest 的 fetchOffset 结果不一致

html - Netsuite 高级 PDF/HTML 文本格式化

search - 分页:存储搜索结果

java - JTextPane 是否支持文本内存分页?

html - 如何在 NetSuite 在线客户表单中将复选框对齐到标签文本的左侧?

javascript - 检查销售订单(客户 PO)上是否有重复项 保存

php - Netsuite:如何将自定义字段附加到销售订单

javascript - Netsuite 将搜索保存到 Suitelet 子列表