尝试在 item_fulfillment 上删除线条时出错

Error when trying to removeLine on item_fulfillment

我正在尝试将销售订单转换为项目履行并删除一些项目行,但出现以下错误:

name : SSS_INVALID_SUBLIST_OPERATION

message: You have attempted an invalid sublist or line item operation. You are either trying to access a field on a non-existent line or you are trying to add or remove lines from a static sublist

我的代码:

// Transform the record 
var objRecord = record.transform({
                    fromType: record.Type.SALES_ORDER,
                    fromId: soid,
                    toType: record.Type.ITEM_FULFILLMENT,
                    isDynamic: true,
                });

// Remove second location 
var linecount = objRecord.getLineCount({sublistId: 'item'});
for (var i = 0; i < linecount; i++) {
   objRecord.selectLine({sublistId: "item",line: i});
   var locationid = objRecord.getCurrentSublistValue({sublistId: 'item',fieldId: 'location'});
   if (locationid != 15)
      objRecord.removeLine({sublistId: 'item',line: i});
}

销售订单中有 10 行。只有 1 分配了一些数量并准备好履行,也许当我尝试删除它时导致错误?但似乎错误来自其他原因。

我尝试设置:isDynamic: false(同样的错误)

从列表底部开始删除。

每次成功删除后,linecount 的值都会发生变化。最终,i 将得到一个不再存在的值。

问题不是因为行的索引,而是因为对记录的操作。在项目履行中,函数 objRecord.removeLine 不可用。 要从履行项目中删除行,我们必须使用:

  objRecord.setCurrentSublistValue({
                        sublistId: 'item',
                        fieldId: 'itemreceive',
                        value : false
                    })