2016-09-15 97 views
1

我試圖更新netsuite中的客戶訂閱列表。NetSuite更新客戶訂閱條目

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

但錯誤拋出: 通知(SuiteScript) 您已經嘗試了無效的子表或行項目操作。您要麼試圖訪問不存在的行上的字段,要麼嘗試添加或刪除靜態子列表中的行。

+0

答案是否適合您? – W3BGUY

回答

2

在使用setCurrentLineItemValue之前,您需要選擇使用selectLineItem的行然後使用commitLineItem來保存更改。

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'); 
} 

兩者的效果都一樣。

順便說一句,既然你必須從第一行開始,你需要確保你使用i < = itemCount。否則,如果有10行,你會錯過最後一行。當你移動到2.0,並開始你的計數爲0時,你可以使用i < itemCount。