Netsuite - 转移库存错误

时间:2016-09-06 09:00:28

标签: netsuite transfer inventory

我一直在使用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。但由于这部分不起作用,我已将其分开进行测试。

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

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

此外,没有名为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);

如果您使用的是Bin / Lot Numbered Items,请参阅帮助主题“高级Bin /编号库存管理的示例脚本”