首页 文章

如何从Netsuite restlet获取客户老化字段

提问于
浏览
1

我遇到了通过Restlet获取客户记录老化信息的问题 . 特别是我希望从给定客户的Customer表单中获取aging,aging1,aging2,aging3和aging4字段 .

在UI中,这些值可以在“财务”部分下的客户表单中找到,如下所示:

Current    1-30    Days 31-60    Days 61-90 Days    Over 90 Days
1200.00    800.00  720.37        423.23             42.00

我的Restlet代码看起来像这样:

…
cols[6] = new nlobjSearchColumn('aging');
var result = nlapiSearchRecord(data.record_type, null, filter, cols);
return result;

它适用于其他领域,如“ balancer ”,但当我包含“老化”字段并运行我的GET时,我看到此错误:

"error": {
        "code": "SSS_INVALID_SRCH_COL",
        "message": "An nlobjSearchColumn contains an invalid column, or is not in proper syntax: aging."
    }

显然,我没有做正确的事情 . 这些领域在某种程度上是特殊的吗?如何检索这些值?

4 回答

  • 2

    足够简单,可以添加到套件上下文中 . 例如

    var aging = nlapiSearchRecord('invoice', null, [
      new nlobjSearchFilter('daysoverdue', null, 'greaterthan', 0),
      new nlobjSearchFilter('mainline', null, 'is', 'T'),
      new nlobjSearchFilter('amountremaining', null, 'greaterthan', 0)
      //for your RESTLet maybe you need this: , new nlobjSearchFilter('entity', null, 'is', data.customer_id)
    ], [
      new nlobjSearchColumn('entity', null, 'group'),
      new nlobjSearchColumn('formulanumeric', null, 'sum').setFormula('case when {daysoverdue} < 31 then {amountremaining} else 0 end'),
      new nlobjSearchColumn('formulanumeric', null, 'sum').setFormula('case when {daysoverdue} between 31 and 60 then {amountremaining} else 0 end'),
      new nlobjSearchColumn('formulanumeric', null, 'sum').setFormula('case when {daysoverdue} between 61 and 90 then {amountremaining} else 0 end'),
      new nlobjSearchColumn('formulanumeric', null, 'sum').setFormula('case when {daysoverdue} > 90 then {amountremaining} else 0 end')
    ]);
    aging.forEach(function (inv) {
      var cols = inv.getAllColumns();
      console.log(inv.getText('entity', null, 'group') +
          ' 0-30: ' + inv.getValue(cols[1]) +
          ' 31-60: ' + inv.getValue(cols[2]) +
          ' 61-90: ' + inv.getValue(cols[3]) +
          ' > 90: ' + inv.getValue(cols[4]));
    });
    
  • 0

    据我所知,没有一个名为“老化”的客户搜索专栏 . 这是无效搜索列错误的原因 .

    这些字段也可能不会暴露给搜索或套件,这就是您收到错误的原因 .

  • 1

    我实际上联系过Netsuite并且之前的评论是正确的,那些字段没有公开,所以我根本无法使用它们 .

    目前有一个增强请求#238854来公开这些字段 .

  • 0

    只是一个关于此的后续注释:经过近三年的时间,Netsuite仍然没有对该增强请求采取行动,即使它已被投票30次 . 此外,上述解决方案产生的数字通常(但并非总是)与Netsuite显示的数字一致 .

相关问题