Netsuite &引用;该记录自您检索后已被删除";从采购订单创建物料收据时
我正在导入带有以下JSON的CSV文件:Netsuite &引用;该记录自您检索后已被删除";从采购订单创建物料收据时,netsuite,suitescript,suitescript2.0,Netsuite,Suitescript,Suitescript2.0,我正在导入带有以下JSON的CSV文件: [{"po":"POUSOPS50000","item":"Test Item 1","quantity":"400"},{"po":"POUSOPS50000","item":"Test Item 2","quantity":"
[{"po":"POUSOPS50000","item":"Test Item 1","quantity":"400"},{"po":"POUSOPS50000","item":"Test Item 2","quantity":"700"}]
我想创建一个项目收据,其中包括CSV中的两个项目
当我导入文件时,它会创建一个只包含第一个项目的项目收据(JSON中的第一个对象)
它告诉我一个错误:“自从你检索到记录后,它已被删除。”
我的代码:
function Run(irList) {
try {
var poName = irList[Object.keys(irList)[0]]["po"];
var poId = getPO(poName)
var irRec = context.record.transform({
fromType: 'purchaseorder',
fromId: poId,
toType: 'itemreceipt'
})
var count = irRec.getLineCount('item')
for (; i < irList.length; i++) {
var irData = irList[i];
createIR(irData, irRec, count, poId)
var irId = irRec.save({
ignoreMandatoryFields: true
});
} catch (e) {
log.error('Run ' + i, e)
errorsList.push({
action: 'Run ' + i,
m: e.message
})
}
函数运行(irList){
试一试{
var-poName=irList[Object.keys(irList)[0][“po”];
变量poId=getPO(poName)
var irRec=context.record.transform({
fromType:“purchaseorder”,
fromId:poId,
toType:“ItemReceive”
})
变量计数=IREC.getLineCount('项目')
对于(;i
函数createIR(irData、irRec、count、poId){
//irData=一个项目对象
//IREC=物料接收对象(从采购订单转换后)
//计数=采购订单中的项目数
//poId=采购订单id
试一试{
var sublistId='item'
对于(变量i=0;i=0){
IREC.SetPublistValue(子列表“数量”,i,数量)
打破
}否则{
数量-=qtyRem
IREC.SetPublistValue(子列表'quantity',i,qtyRem)
}
}
}
var irId=IREC.save({
ignoreMandatoryFields:true
});
您有两个名为run的函数,并且所有三个函数都在保存您转换的项目接收记录。这是一个奇怪的错误,因为我没有看到您删除任何内容。您可以完整发布脚本吗?复制代码时缺少它。现在只有一个run函数。
function createIR(irData, irRec, count, poId) {
//irData = one item object
//irRec = item receipt object (after transform from po)
//count = the number of items in po
//poId = PO id
try {
var sublistId = 'item'
for (var i = 0; i < count; i++) {
irRec.setSublistValue(sublistId, 'quantity', i, '')
}
var itemId = getItemId(irData.item)
var quantity = irData.quantity
for (var i = 0; i < count && quantity; i++) {
var item = irRec.getSublistValue(sublistId, 'item', i)
if (item == itemId) {
var qtyRem = irRec.getSublistValue(sublistId,
'quantityremaining', i)
var diff = qtyRem - quantity
if (diff >= 0) {
irRec.setSublistValue(sublistId, 'quantity', i, quantity)
break;
} else {
quantity -= qtyRem
irRec.setSublistValue(sublistId, 'quantity', i, qtyRem)
}
}
}
var irId = irRec.save({
ignoreMandatoryFields: true
});