UNPKG

nsmockup

Version:

Test your Suitescripts before deploying to NetSuite

45 lines (42 loc) 1.51 kB
'use strict'; /** * * @classDescription search. * @return {nlobjSearchResultSet} * @constructor * @param {nlobjSearch} searchObject record type ID. */ exports.nlobjSearchResultSet = function nlobjSearchResultSet(search) { /* Not intended to be public; customers should use runSearch(). */ this.search = search; this.results = nlapiSearchRecord(search.type, null, search.getFilters(), search.getColumns()) || []; this.getColumns = function () { return this.search.getColumns(); }; this.getResults = function (start, end) { if (start < 0) { throw nlapiCreateError('SSS_INVALID_SEARCH_RESULT_INDEX'); //} else if ((end - start) > 1000) { // throw nlapiCreateError('SSS_SEARCH_RESULT_LIMIT_EXCEEDED'); } else if (start >= end) { return []; } else { return this.results.slice(start, end); } }; this.forEachResult = function (callback) { var PAGE_SIZE = 50, continueIteration = true; for (var start = 0; ; start += PAGE_SIZE) { var searchResults = this.getResults(start, start + PAGE_SIZE); if (!searchResults) { break; } for (var i = 0; continueIteration && i < searchResults.length; ++i) { continueIteration = callback(searchResults[i], i + start); } if (searchResults.length < PAGE_SIZE) { break; } } }; };