使用 Dropship 默认值 Suitescript 创建采购订单时缺少项目

问题描述 投票:0回答:1

我正在尝试通过 SuiteScript 2 创建 Dropship 采购订单。我能够使用正确的 Drop ship 数据(客户、销售订单、Dropship 表单)创建采购订单对象,但是在保存时出现以下错误“您必须输入此交易的至少一个订单项。”。我可以从销售订单中手动创建直接发货,并且项目添加得很好。我正在使用 Netsuite OneWorld。

下面是我使用的代码

        var purchaseOrder = record.create({
            type: record.Type.PURCHASE_ORDER,
            isDynamic: true,
            defaultValues: {
                soid: 4427821,
                dropship: true,
                subsidiary: 9,
                custid: 666,
                entity: 322
            }
        });
        purchaseOrder.setValue({
            fieldId: "employee",
            value: 3
        });

        log.debug("Item Count", purchaseOrder.getLineCount("item"));
        log.debug("Entity", purchaseOrder.getText("entity"));
        log.debug("Customer", purchaseOrder.getText("shipto"));
        log.debug("Sales Order", purchaseOrder.getText("createdfrom"));
        log.debug("Form", purchaseOrder.getText("customform"));
        log.debug("Subsidiary", purchaseOrder.getText("subsidiary"));

        purchaseOrder.save();

这里还有一些截图

销售订单

手动投递 PO

脚本日志

我有创建独立 PO 的现有脚本,所以我对此处所需的过程有一些了解。我是否特别缺少 Dropships 的步骤?我发现了这个线程,其中 Will Charbonneau 说这应该是您所需要的全部“https://stackoverflow.com/questions/61936920/netsuite-how-to-link-purchase-order-to-sales-order”。我用我的 ID 尝试了他们的代码,但结果是同样的错误。

netsuite suitescript suitescript2.0
1个回答
0
投票

defaultValue 对象只接受

entity
值。请查看
record.create defaultValue
docs.

要添加您的货件,您可以通过将任何其他项目添加到

item
子列表来实现。

var purchaseOrderRecordObj = record.create({
    type: record.Type.PURCHASE_ORDER,
    isDynamic: true,
    defaultValues: {
        entity: 322
    }
});

purchaseOrderRecordObj.setValue({ fieldId: 'createdfrom', value: 4427821, ignoreFieldChange: false }); //createdfrom no soid
purchaseOrderRecordObj.setValue({ fieldId: 'subsidiary', value: 9, ignoreFieldChange: false });
purchaseOrderRecordObj.setValue({ fieldId: 'memo', value: "Created from Sales Order as Dropship", ignoreFieldChange: false });    
purchaseOrderRecordObj.setValue({ fieldId: 'employee', value: 3, ignoreFieldChange: false });

purchaseOrderRecordObj.selectNewLine({ sublistId: 'item' });
purchaseOrderRecordObj.setCurrentSublistValue({ sublistId: 'item', fieldId: 'item', value: '<DROP_SHIP_ITEM_ID', ignoreFieldChange: false })
//if you want to change the quantity, or the price do here ... 
purchaseOrderRecordObj.commitLine({ sublistId: 'item', ignoreRecalc: false })

purchaseOrderRecordObj.save({ ignoreMandatoryFields: true });

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.