代码之家  ›  专栏  ›  技术社区  ›  Marian Bida

NetSuite更新客户订阅条目

  •  1
  • Marian Bida  · 技术社区  · 9 年前

    var itemCount = recLead.getLineItemCount('subscriptions');
    for (var i = 1; i < itemCount; i++ ) {  recLead.setCurrentLineItemValue('subscriptions', 'subscribed', 'T');}
    

    但错误抛出: 通知(SuiteScript) 您尝试了无效的子列表或行项目操作。您要么试图访问不存在的行上的字段,要么试图在静态子列表中添加或删除行。

    2 回复  |  直到 3 年前
        1
  •  2
  •   w3bguy    9 年前

    如果计划使用“当前”行项目功能,则需要选择要使用的行。具体如下:

    var itemCount=recLead.getLineItemCount('subscriptions');
    for(var i=1;i<=itemCount;i++){
      recLead.selectLineItem('item',i);
      recLead.setCurrentLineItemValue('subscriptions','subscribed','T');
      recLead.commitLineItem('item');
    }
    

    或者,如果不想这样做,可以改用setLineItemValue。

    var itemCount=recLead.getLineItemCount('subscriptions');
      for(var i=1;i<=itemCount;i++){
      recLead.setLineItemValue('subscriptions','subscribed',i,'T');
    }
    

    顺便说一句,由于必须从第1行开始,因此需要确保使用i<=itemCount。否则,如果有10行,您将错过最后一行。当您移动到2.0,并从0开始计数时,可以使用i<itemCount。

        2
  •  2
  •   Rusty Shackles    9 年前

    在使用setCurrentLineItemValue之前,需要使用selectLineItem选择行,然后使用commitLineItems保存更改。