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;
}
Run Code Online (Sandbox Code Playgroud)
那就是说,search.getResults(page*PAGE_SIZE, (page*PAGE_SIZE + PAGE_SIZE))应该给你第一n页的结果.请注意,它getResults()具有与之关联的API治理点.
从2016年开始.4 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();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
948 次 |
| 最近记录: |