【问题标题】:Netsuite - Transfer Inventory errorNetsuite - 转移库存错误
【发布时间】:2017-01-13 15:57:36
【问题描述】:

我使用 NetSuite 的时间很短,并且已经讨厌它了。如果这是一个愚蠢的问题,我很抱歉,但到目前为止,我无法在 Netsuite 文档、StackOverflow 或其他网站中找到答案。事实上,我找到的答案导致了错误。

我的公司需要一个脚本来根据 EDI 输入文件传输库存。读取文件没有问题,即使解析它也可以。然而,实际插入数据被证明是有问题的。 我已经能够插入正常的记录,但是库存转移记录给我带来了问题。

我从 Stack Overflow 中找到了一些代码并将其修改为以下代码:

var xfer = nlapiCreateRecord("inventorytransfer");

xfer.setFieldValue("trandate", FormatDate("20160101"));
xfer.setFieldValue("location", 9);
xfer.setFieldValue("transferlocation", 9);

nlapiSelectNewLineItem('invt');
nlapiSetLineItemValue("invt","invtid",1, 189);
nlapiSetLineItemValue("invt","adjustqtyby", 1, "5");
nlapiCommitLineItem('invt');

var id = nlapiSubmitRecord(xfer);

FormatDate 函数只是将文本文件中的日期转换为 NetSuite 可以理解的系统日期。

但是,当我运行此代码时,我收到以下错误:

USER_ERROR:您必须为此交易输入至少一个订单项。

我认为插入订单项是使用 nlapiSelectNewLineItem 的原因,但我想不是。 nlapiCreateNewLineItem 似乎也不存在。

我插入的值都只是测试数据,因为我正在调试器中测试它。位置 9 存在,项目 189 也存在。 我的完整脚本根据文本文件中的字符串值找到这些 id。但由于这是不起作用的部分,因此我将其分开进行测试。

有人可以帮忙吗?

【问题讨论】:

    标签: netsuite transfer inventory


    【解决方案1】:

    您没有指定正在使用的脚本类型,但是,您似乎没有在记录对象上设置字段,而是在当前记录上设置值。下面是建议的代码。

    另外,没有名为invt 的子列表,应该是inventory。另外,没有像invtid这样的字段,我想你很可能想要设置项目,字段ID应该是item。您可能还想参考SuiteScript Record Browser 以获取有关正确 ID 的帮助

    var xfer = nlapiCreateRecord("inventorytransfer");
    
    xfer.setFieldValue("trandate", FormatDate("20160101"));
    xfer.setFieldValue("location", 9);
    xfer.setFieldValue("transferlocation", 9);
    
    xfer.selectNewLineItem('inventory');
    xfer.setCurrentLineItemValue("inventory", "item", 189);
    xfer.setCurrentLineItemValue("inventory","adjustqtyby", "5");
    xfer.commitLineItem('inventory');
    
    var id = nlapiSubmitRecord(xfer);
    

    如果您使用带货位/批次编号的项目,请参阅帮助主题“高级货位/编号库存管理的示例脚本”

    【讨论】:

    • 看来您也应该使用不带索引的 xfer.setCurrentLineItemValue 而不是 xfer.setLineItemValue
    • 感谢@prasun 的快速回复。该脚本直接写入调试器。但完整的脚本是每晚处理文件的预定脚本。不幸的是,这个新代码出现了同样的错误。
    • @erictgrubaugh 与您的建议相同的错误。不过谢谢。
    • @AndrewHewitt 请查看我的编辑,另外,正如@erictgrubaugh 建议的那样,使用setCurrentLineItemValue 是一种更好的方法
    • @4ni5 自 2020.2 升级以来,我们也看到了该错误,即使在某些项目上的 SuiteScript 2.0 中也是如此。
    猜你喜欢
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多