使用 Search.PagedData.fetch 方法
PagedData 是一個由 Search.runPaged(options)
方法返回的物件。它的工作方式與 UI 搜尋完全相同。PagedData 物件包含 2 個重要屬性,你可以在 Netsuite UI 的搜尋結果頁面的結果標題的右側看到:
- count (結果總數)
- pageRanges (頁面列表,在 UI 中作為組合框選擇器提供)
options.pageSize 引數再次限制為 1000 個結果行。
PagedData.fetch 方法用於獲取所需的結果部分(由 pageIndex 引數索引)。使用更多程式碼,你可以獲得與 Search.ResultSet.each 相同的方便回撥函式,而不受 4000 行限制。
// Assume that 'N/search' module is included as 'search'
// this search will return a lot of results (not having any filters)
var s = search.create({
type: search.Type.TRANSACTION,
columns : ['entity','amount'],
filters : []
});
var pagedData = s.runPaged({pageSize : 1000});
// iterate the pages
for( var i=0; i < pagedData.pageRanges.length; i++ ) {
// fetch the current page data
var currentPage = pagedData.fetch(i);
// and forEach() thru all results
currentPage.data.forEach( function(result) {
// you have the result row. use it like this....
var transId = result.id;
var entityId = result.getValue('entity');
var entityName = result.getText('entity');
var amount = result.getValue('amount');
});
}
讓我們計算治理。我們有 7 個單元用於 runPaged()
,1 + count / 1000 個 pagedData.fetch 呼叫每個 5 個單元,所以:
G = 5 + ceil(計數/ 1000)* 5
示例:9500 行將佔用 55 個單位。大約一半的 getRange 治理單位。