Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将直运PO添加到NetSuite中的现有销售订单_Javascript_Netsuite_Suitescript - Fatal编程技术网

Javascript 将直运PO添加到NetSuite中的现有销售订单

Javascript 将直运PO添加到NetSuite中的现有销售订单,javascript,netsuite,suitescript,Javascript,Netsuite,Suitescript,我需要根据NetSuite中已经存在的销售订单创建直运采购订单,并根据该订单创建一个或多个直运POs。现在,通常通过UI,您只需单击项目行上的Drop Ship链接即可,但这是通过SuiteScript以编程方式完成的。我以为我几年前就知道了,但那是几年前的事了,从那以后就再也没有出现过,我再也记不起当时我在处理什么文件了 系统不允许将订单恢复为待定审批状态,因此我不能仅更改状态来强制系统创建新的POs。我还尝试了以下方法,但没有成功: soRecord.setCurrentLineItemVa

我需要根据NetSuite中已经存在的销售订单创建直运采购订单,并根据该订单创建一个或多个直运POs。现在,通常通过UI,您只需单击项目行上的Drop Ship链接即可,但这是通过SuiteScript以编程方式完成的。我以为我几年前就知道了,但那是几年前的事了,从那以后就再也没有出现过,我再也记不起当时我在处理什么文件了

系统不允许将订单恢复为待定审批状态,因此我不能仅更改状态来强制系统创建新的POs。我还尝试了以下方法,但没有成功:

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在文档中的表现。不如果已经创建了采购订单,并且我们在订单中添加了另一条直运生产线,那么这将不起作用