Netsuite Restlet-错误-子列表操作无效

Netsuite Restlet-错误-子列表操作无效,rest,netsuite,Rest,Netsuite,我试图在Netsuite中编写工作单完成脚本,但它正在返回 “SSS\u无效\u子列表\u操作-您尝试了无效的子列表或行项目操作。您正在尝试访问不存在的行上的字段,或者正在尝试从静态子列表中添加或删除行。” 这是我的密码 function preRequest(datain){ //var id = 514752; //var sn = KQ0006608; var record = nlapiTransformRecord('workorder', datain.id, 'workorderc

我试图在Netsuite中编写工作单完成脚本,但它正在返回

“SSS\u无效\u子列表\u操作-您尝试了无效的子列表或行项目操作。您正在尝试访问不存在的行上的字段,或者正在尝试从静态子列表中添加或删除行。”

这是我的密码

function preRequest(datain){
//var id = 514752;
//var sn = KQ0006608;
var record = nlapiTransformRecord('workorder', datain.id, 'workordercompletion');
record.setFieldValue('quantity', 1);


var subrecord2=record.createSubrecord( 'inventorydetail');
subrecord2.selectNewLineItem( 'inventoryassignment' );
//subrecord2.selectLineItem('inventoryassignment', 1);   
subrecord2.setCurrentLineItemValue('inventoryassignment', 'receiptinventorynumber', datain.sn);
subrecord2.setCurrentLineItemValue('inventoryassignment', 'binnumber', 25);   
subrecord2.setCurrentLineItemValue('inventoryassignment', 'quantity', 1);

subrecord2.commitLineItem('inventoryassignment');

subrecord2.commit();

record.commitLineItem('inventorydetail');


nlapiSubmitRecord(record);


}
我真诚地阅读了他们的文档,知道错误是什么以及可能的原因,但我不知道如何修复代码,以便它提交记录。任何帮助都会很棒

编辑:另一个线索是Netsuite将要构建的数量字段(“我的代码中的数量”)作为子列表处理。这是错误的根本原因。修复这个将修复我的代码。只是不知道怎么做


编辑:请参见工作单完成UI页面以获取参考。

如果我回忆正确,工作单有两个位置,您可以在其中指定库存详细信息记录。一个位于标题处,用于生成的部件项,另一个位于行项级别,用于部件项的组件


我相信“inventoryassignment”字段用于标题字段,这就是为什么会出现错误。尝试改用“componentinventorydetail”。

如果我没记错,工单有两个地方可以指定库存明细记录。一个位于标题处,用于生成的部件项,另一个位于行项级别,用于部件项的组件

我相信“inventoryassignment”字段用于标题字段,这就是为什么会出现错误。尝试改用“componentinventorydetail”。

哇,所以我修复了它

我收到的第一个跟踪错误是“ValidatePredProcessorCompletedQuantity”,它告诉我一些我起初不明白的事情,但由于用户prasun能够让我的代码在他的Netsuite测试环境中工作,这让我相信这不是代码问题,而是Netsuite设置。那是哪一个呢

我在Netsuite文档中查找了工单完成验证,并找到了一个用于工单完成验证的幻灯片。我将设置管理器中“会计首选项”“订单管理”“工单”下的设置更改为“无验证”,但在保存之前需要确认,这就是为什么出于某种原因它不允许我继续。它需要确认我的代码没有提供

tl;博士

转到“工作单”标题下的“设置->设置管理器->会计->会计首选项->订单管理->将操作完成期间先前操作中完成的检查更改为“无验证”

最后问题:

有没有办法调整我的代码以允许验证(这很有用!),而不必更改设置?

哇,所以我修复了它

我收到的第一个跟踪错误是“ValidatePredProcessorCompletedQuantity”,它告诉我一些我起初不明白的事情,但由于用户prasun能够让我的代码在他的Netsuite测试环境中工作,这让我相信这不是代码问题,而是Netsuite设置。那是哪一个呢

我在Netsuite文档中查找了工单完成验证,并找到了一个用于工单完成验证的幻灯片。我将设置管理器中“会计首选项”“订单管理”“工单”下的设置更改为“无验证”,但在保存之前需要确认,这就是为什么出于某种原因它不允许我继续。它需要确认我的代码没有提供

tl;博士

转到“工作单”标题下的“设置->设置管理器->会计->会计首选项->订单管理->将操作完成期间先前操作中完成的检查更改为“无验证”

最后问题:


有没有办法调整我的代码以允许验证(这很有用!),而不必更改该设置?

当我出现此错误时,是因为在记录类型(customerpayment)中,我试图创建一个子列表项目行,而不是从现有记录(发票)转换过来并编辑其自动填充的“应用”子列表项。

发生此错误时,是因为在记录类型(customerpayment)中,我试图创建子列表项行,而不是从现有记录(发票)转换并编辑其自动填充的“应用”子列表项。

是否可以检查工单部件项是否已选中“使用箱”?什么是数量子列表-它的子列表字段是什么,我在记录浏览器的任何地方都看不到它?已选中“使用箱子”。在记录浏览器下,它将是Quantity,是的,它不是子列表,但在Assembly Detail body字段下。我使用了与上面相同的代码,它在我的测试帐户中工作得很好。请检查是否提供了表单上的所有必填字段。还有,在工单完成记录类型上是否部署了任何其他用户事件,谁知道他们可能有bug?有趣的是,它对您有效。您使用了什么类型的函数(GET、POST、PUT?)以及填写表单中的必填字段?谢谢你迄今为止的帮助!我使用GET,但是应该适用于RESTlet支持的任何HTTP谓词。对于我来说,必填字段是主体字段“startoperation”和“OnOperation”。您是否有任何关于工单完成的用户事件?您是否可以检查工单装配项是否已选中使用箱?什么是数量子列表-它的子列表字段是什么,我在记录浏览器的任何地方都看不到它?已选中“使用箱子”。在记录浏览器下,它将是Quantity,是的,它不是子列表,但在Assembly Detail body字段下。我使用了与上面相同的代码,它在我的测试帐户中工作得很好。请检查是否提供了表单上的所有必填字段。还有,在工单完成记录类型上是否部署了任何其他用户事件,谁知道他们可能有bug?有趣的是,它对您有效。什么类型的函数