Javascript 将直运PO添加到NetSuite中的现有销售订单
我需要根据NetSuite中已经存在的销售订单创建直运采购订单,并根据该订单创建一个或多个直运POs。现在,通常通过UI,您只需单击项目行上的Drop Ship链接即可,但这是通过SuiteScript以编程方式完成的。我以为我几年前就知道了,但那是几年前的事了,从那以后就再也没有出现过,我再也记不起当时我在处理什么文件了 系统不允许将订单恢复为待定审批状态,因此我不能仅更改状态来强制系统创建新的POs。我还尝试了以下方法,但没有成功:Javascript 将直运PO添加到NetSuite中的现有销售订单,javascript,netsuite,suitescript,Javascript,Netsuite,Suitescript,我需要根据NetSuite中已经存在的销售订单创建直运采购订单,并根据该订单创建一个或多个直运POs。现在,通常通过UI,您只需单击项目行上的Drop Ship链接即可,但这是通过SuiteScript以编程方式完成的。我以为我几年前就知道了,但那是几年前的事了,从那以后就再也没有出现过,我再也记不起当时我在处理什么文件了 系统不允许将订单恢复为待定审批状态,因此我不能仅更改状态来强制系统创建新的POs。我还尝试了以下方法,但没有成功: soRecord.setCurrentLineItemVa
soRecord.setCurrentLineItemValue("item", "createpo", "DropShip");
soRecord.setCurrentLineItemValue("item", "povendor", vendorId);
除了将新项目行添加到销售订单之外,什么都不会发生。我还尝试使用合适的供应商创建采购订单,并将其附加到销售订单上的项目行,但也没有效果:
soRecord.setCurrentLineItemValue("item", "createdpo", poId);
有什么我遗漏的吗?还是我一直在做傻事?这些字段是只读的。这是我用的
var po = nlapiCreateRecord('purchaseorder', {recordmode:"dynamic", soid:<internal id of salesorder>,poentity:<preferred vendor of item>});
我们遇到了一个问题,我们的自动投递POs在创建时停止生成。在部署到SOs的后提交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链接,你就会明白我为什么这么做。您可能会想出另一种方法来实现这一点。这就成功了。在保存之前,我必须在采购订单记录上再次设置供应商,因为某种原因,它会抛出一个错误,表示未设置供应商,但现在所有这些都集合在一起了。非常感谢。不过,我很喜欢这两个参数soid和poentity在文档中的表现。不如果已经创建了采购订单,并且我们在订单中添加了另一条直运生产线,那么这将不起作用