我试图在netsuite中更新客户订阅列表。
var itemCount = recLead.getLineItemCount('subscriptions');
for (var i = 1; i < itemCount; i++ ) { recLead.setCurrentLineItemValue('subscriptions', 'subscribed', 'T');}
但错误抛出: 注意事项(SuiteScript) 您尝试了无效的子列表或订单项操作。您要么尝试访问不存在的行上的字段,要么尝试在静态子列表中添加或删除行。
答案 0 :(得分:2)
在使用setCurrentLineItemValue之前,您需要使用selectLineItem选择行,然后使用commitLineItem保存更改。
答案 1 :(得分:2)
如果您打算使用“当前”订单项功能,则需要选择要使用的行。如下:
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');
}
两者都有效地工作。
BTW,因为你必须从第1行开始,你需要确保使用i&lt; = itemCount。否则,如果有10行,您将错过最后一行。当你移动到2.0,并开始计数为0时,你可以使用i&lt; ITEMCOUNT。