在NetSuite中将Drop Ship PO添加到现有销售订单

时间:2018-05-10 15:05:42

标签: javascript netsuite suitescript

我需要针对已经存在的NetSuite中的销售订单创建下落船采购订单,并且针对它创建了一个或多个拖船PO。现在,通常通过用户界面,您只需点击" Drop Ship"链接在项目行上,然后你去,但这是用SuiteScript以编程方式完成的。我以为几年前我已经想到了这个问题,但是几年前,这个问题还没有出现,我再也不记得当时我在做什么文件了。

系统不允许将订单恢复为"待批准"状态,所以我不能只改变状态来强制系统创建新的PO。我也尝试过以下方面没有成功:

soRecord.setCurrentLineItemValue("item", "createpo", "DropShip");
soRecord.setCurrentLineItemValue("item", "povendor", vendorId);

除了将新项目行添加到销售订单之外,没有任何其他事情发生。我还尝试使用适当的供应商创建采购订单并将其附加到销售订单上的项目行,但是它也没有效果:

soRecord.setCurrentLineItemValue("item", "createdpo", poId);

我有什么遗失的东西吗?或者我一直在开始傻瓜的差事?

2 个答案:

答案 0 :(得分:1)

这些字段是只读的。这就是我用过的东西

var po = nlapiCreateRecord('purchaseorder', {recordmode:"dynamic", soid:<internal id of salesorder>,poentity:<preferred vendor of item>});

答案 1 :(得分:0)

我们遇到了一个问题,即我们的自动运输船 PO 在 SO 创建时停止生成。在部署到 SO 的 afterSubmit UE 中,收集项目行上的一系列供应商,然后过滤以删除重复项。然后将此逻辑添加到 for 循环中,其中 i < 过滤供应商数组的长度:

var createDSPO = record.create({
                            type: record.Type.PURCHASE_ORDER,
                            defaultValues: {
                                soid: <SO internal id>,
                                shipgroup: 1,
                                dropship: true,
                                custid: <SO customer internal ID>,
                                entity: poVendorArray[i],
                                poentity: poVendorArray[i]
                            }
                        });
                        createDSPO.save();

仅供参考,如果您检查 SO 记录上的“Drop Ship”链接,您就会明白我为什么这样做。您或许可以想出另一种方法来做到这一点。