2

我正在尝试通过脚本填充销售订单行项目的库存详细信息子记录。该脚本是一个用户事件脚本,将在提交之前运行。此时用户已经输入了行项目信息:即。项目、数量、批号(自定义选择字段,其中选项是库存编号)。

我使用以下内容填充库存详细信息子记录:

for (var i=1; i<=numberOfLineItems; i++){
nlapiSelectLineItem('item',i);
//First get the Lot Number and Quantity
var lotNumber = nlapiGetCurrentLineItemValue('item', 'custcol_select_lot_number');
var quantity = nlapiGetCurrentLineItemValue('item', 'quantity');

var inventoryDetail=nlapiCreateCurrentLineItemSubrecord('item','inventorydetail');

inventoryDetail.selectNewLineItem('inventoryassignment');
inventoryDetail.setCurrentLineItemValue('inventorydetail', 'issueinventorynumber', lotNumber);
inventoryDetail.setCurrentLineItemValue('inventorydetail', 'quantity', quantity);
inventoryDetail.commitLineItem('inventoryassignment');
inventoryDetail.commit();

nlapiCommitLineItem('item');}

当我这样做时,我收到以下错误:

注意 (SuiteScript) 您必须为此交易输入至少一个行项目。

有谁知道为什么我会收到此错误?

谢谢!

4

1 回答 1

5

第 10 行和第 11 行有错误。此外,在我在客户中心的特殊情况下,我需要将此代码放入 After Submit 并加载记录。这是更正后的代码:

for (var i=1; i<=numberOfLineItems; i++){
        SOrecord.selectLineItem('item',i);
        //First get the Lot Number and Quantity
        var lotNumber = SOrecord.getCurrentLineItemValue('item', 'custcol_select_lot_number');
        var quantity = SOrecord.getCurrentLineItemValue('item', 'quantity');
        var available = SOrecord.getCurrentLineItemValue('item','available');
        nlapiLogExecution('debug','lineNum, LotNumID, Quantity, available',i + ', ' + lotNumber + ', ' + quantity + ', ' + available);

        var inventoryDetail = SOrecord.createCurrentLineItemSubrecord('item','inventorydetail');

        inventoryDetail.selectNewLineItem('inventoryassignment');
        inventoryDetail.setCurrentLineItemValue('inventoryassignment', 'issueinventorynumber', lotNumber);
        inventoryDetail.setCurrentLineItemValue('inventoryassignment', 'quantity', quantity);
        inventoryDetail.commitLineItem('inventoryassignment');
        inventoryDetail.commit();

        SOrecord.commitLineItem('item');

    }
    nlapiSubmitRecord(SOrecord);
于 2013-10-21T21:03:16.277 回答