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

Mapreduce Netsuite重新配置库存详细信息错误,mapreduce,netsuite,suitescript,suitescript2.0,Mapreduce,Netsuite,Suitescript,Suitescript2.0,在创建自定义记录时,我调用map reduce脚本来创建负库存调整。 提交后将调用脚本。 我使用以下代码填充库存明细子记录 for (var n = 0; n < cp_lotsearch.length; n++) { if (cree_onhand > 0) { var cp_lotid = cp_lotsearch[n].getValue({name: 'internalid'});

在创建自定义记录时,我调用map reduce脚本来创建负库存调整。 提交后将调用脚本。 我使用以下代码填充库存明细子记录

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
                });
for(var n=0;n0){
var cp_lotid=cp_lotsearch[n].getValue({name:'internalid'});
var cp_parentcasenam=cp_lotsearch[n].getValue({name:'custrecord_nsts_ia_lot'});
var itemsearch=search.create({
键入:“项”,
筛选器:['inventorynumber.inventorynumber','is',cp\u parentcasenum],
columns:[search.createColumn({name:“quantityonhand”,join:“inventorynumber”})]
}).run().getRange({
起点:0,
完:1000
});
var qtyonhand=itemsearch[0]。getValue({name:'quantityonhand',join:'inventorynumber'});
var剩余量=数量(数量)-数量(数量);
如果(保持手动>=0){
var减少数量=0-数量(现有cree_);
}否则{
风险减少数量=0-数量(数量);
}
log.debug(“reduceqty”,reduceqty);
insertLine({sublistId:'inventoryassignment',行:n});
setPublistText({sublistId:'inventoryassignment',fieldId:'issueinventorynumber',行:n,文本:cp_parentcasenum});
setPublistValue({sublistId:'inventoryassignment',fieldId:'binnumber',行:n,值:cree_bin});
setPublistValue({sublistId:'inventoryassignment',fieldId:'quantity',行:n,值:reduceQuantity});
log.debug(“减少数量添加到库存明细”,减少数量);
现有克里=数量(现有克里)+数量(减少数量);
}
}
var invadjid=parentcase\u inv\u Adj.save({
使能资源:正确,
ignoreMandatoryFields:true
});
当我尝试运行此代码时,出现以下错误:

“类型”:“error.SuiteScriptError”、“name”:“USER\u error”、“message”:“更改数量后仍需重新配置库存明细记录。”

同样的代码在沙盒帐户中运行得非常完美,但在生产中它抛出了错误

有人能帮我解决这个错误吗

我在套件中找到了一个解决方案,我已经尝试过了,但它不起作用,这里是指向它的链接: