通过 SuiteScript 从 PO 创建项目收据

Ste*_*der 0 netsuite suitescript

我正在创建一个模块来处理多个 PO 合并装运(外汇进口)并编写一个脚本来接收多个 PO,每行的到岸成本。

我正在使用 SuiteScript API 1.0

但是,当我创建项目收据记录(并在createdfrom字段中包含 PO#以创建从 IR 到 PO 的链接时,在将 PO 行复制到 IR 行的过程中,我不断收到SSS_INVALID_SUBLIST_OPERATION错误。

有问题的代码如下:

            // ** set body fields
        receiptRec.setFieldValue('location',purchRec.getFieldValue('location'));
        receiptRec.setFieldValue('entity',purchRec.getFieldValue('entity'));
        receiptRec.setFieldValue('createdfrom',purchRec.getFieldValue('internalid'));
        receiptRec.setFieldValue('currency',purchRec.getFieldValue('currency'));
        receiptRec.setFieldValue('exchangerate',purchRec.getFieldValue('exchangerate'));
        receiptRec.setFieldValue('isbasecurrency',purchRec.getFieldValue('isbasecurrency'));
        receiptRec.setFieldValue('exchangerate',purchRec.getFieldValue('exchangerate'));
        receiptRec.setFieldValue('landedcostperline','T');

        log ('Receipt Record:'); log( receiptRec );
        // ** copy item lines
        var POlines = purchRec.getLineItemCount('item');
        for ( line=1 ; line<=POlines; line++) {
            var fulfill = purchRec.getLineItemValue('item','fulfillable',line); log('Fulfill?? '+fulfill)
            if (fulfill == 'T') {
                log('Fill From PO Line #'+line);
                receiptRec.selectNewLineItem('item');                                                                       log('Debug 1');
                receiptRec.setCurrentLineItemValue('item','item',purchRec.getLineItemValue('item','item',line));            log('Debug 2');
                receiptRec.setCurrentLineItemValue('item','itemreceive','T',line);                                          log('Debug 3');
                receiptRec.setCurrentLineItemValue('item','quantity',purchRec.getLineItemValue('item','quantity',line));    log('Debug 4');
                receiptRec.setCurrentLineItemValue('item','rate',purchRec.getLineItemValue('item','rate',line));            log('Debug 5');
                receiptRec.setCurrentLineItemValue('item','taxcode',purchRec.getLineItemValue('item','taxcode',line));      log('Debug 6');
                receiptRec.setCurrentLineItemValue('item','units',purchRec.getLineItemValue('item','units',line));          log('Debug 7');
                receiptRec.commitLineItem('item');                                                                          log('Debug 8');
            }
        }
Run Code Online (Sandbox Code Playgroud)

错误是在这selectNewLineItem('item')一点上触发的。

receiptRec是新创建的itemreceipt记录。 purchRec是现有的采购订单记录。

我在这里缺少什么?

mic*_*oel 5

您无法在 Netsuite 中“创建”新的收货记录。您需要使用 将采购订单“转换”为物料收据nlapiTransformRecord('purchaseorder', purchaseorderid, 'itemreceipt')。这将自动复制所有行项目,然后您可以遍历它们以更改数量或完全删除行,但是您不能添加新行。

有关更多信息,请参阅文档中的此链接