使用 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({pa​g​e​S​i​z​e : 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 治理單位。