2016-04-13 13 views
1

このループが正しく機能しない理由を知りたいと思っています。それは最初の回だけを繰り返すようです。 4つの広告申込情報があるため、広告申込情報のカウントログ4は4回ループする必要があります。外部システムの広告申込情報を更新する必要があるため、既存の外部IDと照合している外部IDがある必要があります。NetSuiteのラインアイテムループの問題

var itemcount = update_record.getLineItemCount('item'); 
 
for (var i = 1; i <= itemcount; i++) 
 
{ 
 
\t var a_id = update_record.getLineItemValue('item', 'custcol_ex_line_id', i); 
 
\t var json_itemcount = jsonObject.item.length 
 
\t for (var x = 0; json_itemcount != null && x < json_itemcount; x++) 
 
\t { 
 
\t \t var json_id = jsonObject.item[x].ex_line_id 
 
\t \t if(json_id == a_id) 
 
\t \t { 
 
\t \t \t nlapiLogExecution('DEBUG', 'Match Found'); 
 
\t \t \t update_record.setLineItemValue('item', 'amount', i, jsonObject.item[x].amount) 
 
\t \t \t var id = nlapiSubmitRecord(update_record, true); 
 
\t \t \t return id; 
 
\t \t } 
 
\t \t else 
 
\t \t { 
 
\t \t \t nlapiLogExecution('DEBUG', 'no match found - no updates required'); 
 
\t \t } 
 
\t } 
 
} 
 

 

 

 
"item": [{"item" : 38, "amount": 1786, "ex_line_id" : 111}, 
 
     {"item" : 38, "amount": 1786, "ex_line_id" : 113}, 
 
] 
 
}

答えて

4

初めて、それは根本的な記録とリターンを更新するため、このコードは、停止します。

ループ内で更新を行いますが、ループを終了するまではレコードを送信せずに戻ります。

+0

ありがとう、それは問題を解決したようです! – MG2016

+0

Grrr、申し訳ありませんが、問題が見つかりました。 elseを持っているところでは、json_idがa_idと照合されていない場合、新しい広告申込情報を作成しようとしていました。しかし、すべての比較が終わって一致がなければ、他のヒットしたいだけです。今すぐ最初の比較が完了し、一致が見つからないとすぐに他の要素にヒットします...しかし、json_idは数行のitmesの後に存在する可能性があります – MG2016

関連する問題