jk121960
jk121960

Reputation: 873

SuiteScript 2 result set

I am writing a script in 2.0, here is the snippet.

var resultSet = [];
var result = search.load({
  id:'customsearch_autosend_statement_invoice'
}).run().each(function( item ) {
  resultSet.push(item);
});

If I run this saved search in the normal interface I get lots of rows like 2000 plus, but if I run this code I get back 1 row, even using the each function and adding the items to another array I only get one row. I don't see anything in the documentation about this. Can anyone tell me why this is? I'm stumped. thanks in advance for any help

Upvotes: 0

Views: 1624

Answers (2)

Andrés Andrade
Andrés Andrade

Reputation: 2223

It's detailed in the documentation, the callback function returns a boolean which can be used to stop or continue the iteration:

Use a developer-defined function to invoke on each row in the search results, up to 4000 results at a time. The callback function must use the following signature: boolean callback(result.Result result); The callback function takes a search.Result object as an input parameter and returns a boolean which can be used to stop the iteration with a value of false, or continue the iteration with a value of true.

 ...
mySearch.run().each(function(result) {
    var entity = result.getValue({
        name: 'entity'
    });
    var subsidiary = result.getValue({
        name: 'subsidiary'
    });
    return true;
});
...

ResultSet.each(callback)

Upvotes: 3

jk121960
jk121960

Reputation: 873

I found the answer but not because I should have seen it, the examples don't make any attempt to tell you that you have to return true from the each method in order to keep receiving rows. So the answer is that at the end of the "each" function you must return a true value to receive the next row. Like this, so thanks for your effort if I miss your post.

var resultSet = [];
var result = search.load({
  id:'customsearch_autosend_statement_invoice'
}).run().each(function( item ) {
   resultSet.push(item);
   return true;
});

Upvotes: 3

Related Questions