获取多个“公式”列的保存的搜索值

Ste*_*der 5 netsuite suitescript

早上大师,

我在Netsuite中使用多个“公式”列进行了保存的搜索。

例如,formulapercent' named columns, although the每个唯一的标签有多个。

但是,当nlobjSearchResult.getValue('formulapercent')自然使用时,我只会得到第一个公式百分比列值。

如何指定要在getValue 哪个公式列中返回值?

我真的不想使用列号,以防以后需要在Netsuite中为保存的搜索插入新列。

希望有类似的东西 nlobjSearchResult.getValue('formulapercent','<label>')

我尝试了多参数选项,但是它不起作用。

简单修复?

干杯

史蒂夫

bkn*_*hts 6

我通常要做的是在保存的搜索公式列中添加标签。然后:

var f1Val, f2Val, etc;
results.forEach(function(res){
  var cols = res.getAllColumns();
  cols.forEach(function(col){
    switch(col.getLabel()){
       case 'formula1' : f1Val = res.getValue(col); break;
       case 'formula2' : f2Val = res.getValue(col); break;
       ...
    }
  });
});
Run Code Online (Sandbox Code Playgroud)


Ste*_*der 4

我想我应该添加一个我后来学到的答案。

而不是一般地对列进行编号。例如:

var column = []
column[0] = new nlobjSearchColumn('formulanumeric').setFormula('myformula1');
column[1] = new nlobjSearchColumn('formulanumeric').setFormula('myformula2');
searchresults = nlapiSearchRecord(.......);
Run Code Online (Sandbox Code Playgroud)

相反,我发现检索公式列值的最简单方法是唯一定义列:

var colformula1 = new nlobjSearchColumn('formulanumeric').setFormula('myformula1');
var colformula2 = new nlobjSearchColumn('formulanumeric').setFormula('myformula2');

var searchresults = nlapiSearchRecord('item',null,filters,[colformula1,colformula2]);
Run Code Online (Sandbox Code Playgroud)

然后获取公式结果:

var formulares1 = searchresults[i].getValue(colformula1');
var formulares2 = searchresults[i].getValue(colformula2');
Run Code Online (Sandbox Code Playgroud)

解决了列顺序更改时的问题。

认为这可能对某人有帮助。