Netsuite 重新配置库存详细信息错误

问题描述 投票:0回答:2

在创建自定义记录时,我调用一个地图缩减脚本来创建负库存调整。 提交后调用该脚本。 我正在使用以下代码来填充库存详细信息子记录

for (var n = 0; n < cp_lotsearch.length; n++) {
                    if (cree_onhand > 0) {
                        var cp_lotid = cp_lotsearch[n].getValue({name: 'internalid'});
                        var cp_parentcasenum = cp_lotsearch[n].getValue({name: 'custrecord_nsts_ia_lot'});
                        var itemsearch = search.create({
                            type: 'item',
                            filters: ['inventorynumber.inventorynumber', 'is', cp_parentcasenum],
                            columns: [search.createColumn({name: "quantityonhand", join: "inventorynumber"})]
                        }).run().getRange({
                            start: 0,
                            end: 1000
                        });
                        var qtyonhand = itemsearch[0].getValue({name: 'quantityonhand', join: 'inventorynumber'});
                        var remain_qtyonhand = Number(qtyonhand) - Number(cree_onhand);
                        if (remain_qtyonhand >= 0) {
                            var reduceqty = 0 - Number(cree_onhand);
                        } else {
                            var reduceqty = 0 - Number(qtyonhand);
                        }
                        log.debug("reduceqty", reduceqty);
                        subrecord.insertLine({sublistId: 'inventoryassignment',line: n});

                        subrecord.setSublistText({ sublistId: 'inventoryassignment',fieldId: 'issueinventorynumber',line: n,text: cp_parentcasenum});
                        subrecord.setSublistValue({sublistId: 'inventoryassignment',fieldId: 'binnumber', line: n, value: cree_bin});
                        subrecord.setSublistValue({sublistId: 'inventoryassignment',fieldId: 'quantity',line: n,value: reduceqty});
                        log.debug("reduceqty added to inventory detail", reduceqty);
                        cree_onhand = Number(cree_onhand) + Number(reduceqty);
                        
                    }
                }
                var invadjid = parentcase_inv_Adj.save({
                    enableSourcing: true,
                    ignoreMandatoryFields: true
                });

当我尝试运行此代码时,出现以下错误:

"type":"error.SuiteScriptError","name":"USER_ERROR","message":"更改数量后仍需重新配置库存明细记录。"

相同的代码在沙盒帐户中运行完美,但在生产中却抛出错误

谁能帮我解决这个错误?

我在套件答案中得到了一个解决方案,我已经尝试过,但它在这里不起作用,是它的链接: https://netsuite.custhelp.com/app/answers/detail/a_id/80790/kw/reconfigure%20error

mapreduce netsuite suitescript suitescript2.0
2个回答
0
投票

我发现这个错误可以在服务器端触发,如果:

  • 启用多个测量单位功能。
  • 库存计量单位不是1比1,即收货单位是20个一包,但计量单位的基本单位是1。
  • 该商品已序列化。

但是,如果在客户端尝试相同的操作,错误将变为“总库存明细数量必须为 XX”(XX 是库存调整行上“adjustqtyby”中设置的数量)。


0
投票

我在这对你有帮助之后就遇到了这个问题,但也许像我这样的其他人也可以受益!

事实证明,当启用库存状态功能时,NetSuite 会自动在库存详细信息“库存分配”子列表中创建一行(如 UI 中所示)。该行在编写脚本时也可用,因此您不需要使用 insertLine(),只需使用 setSublistValue(..., line: 0) 就可以了。

来源在这里(引用自 SuiteAnswer 81448):https://community.oracle.com/netsuite/english/discussion/4498970/suitescript-you-still-need-to-reconfigure-the-inventory-detail-record-更改数量后

© www.soinside.com 2019 - 2024. All rights reserved.