My Restlet似乎在删除循环中的订单项时遇到问题。如果似乎有一条记录总是被跳过。因此,如果三个订单项的ID为111,则只删除两个。这段代码可能有什么问题:
var itemcount = update_record.getLineItemCount('item');
for (var j = 1; j <= itemcount; j++)
{
var lineid = update_record.getLineItemValue('item', 'custcol_line_id', j);
if (lineid == 111)
{
update_record.removeLineItem('item', j);
}
}
答案 0 :(得分:4)
这类事总是会失败。向后运行你的循环:
for(var j = itemCount; i> 0; i--){
否则,如果你删除第1行然后推进你的索引你正在检查的下一行(索引2)原来是第3行,你完全跳过了第2行。
答案 1 :(得分:1)
使用原始代码,每次删除行时,我们都会在行级别搞乱索引。因此,我们必须从最后一个索引(总行数)开始,转到第一个索引,即1.请参阅下面的示例代码:
var itemcount = update_record.getLineItemCount('item');
for (var j = itemcount; j >0; j--)
{
var lineid = update_record.getLineItemValue('item', 'custcol_line_id', j);
if (lineid == 111)
{
update_record.removeLineItem('item', j);
}
}