Netsuite &引用;该记录自您检索后已被删除";从采购订单创建物料收据时

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":"

我正在导入带有以下JSON的CSV文件:

[{"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
        });