Netsuite 永远转换项目接收循环

Netsuite 永远转换项目接收循环,netsuite,suitescript2.0,Netsuite,Suitescript2.0,我不知道为什么,但是日志一直在循环,然后我执行了一个时间错误 这是代码 function checkForQuantity(irList, irRec, poId) { try { var sublistId = 'item' var count = irRec.getLineCount('item') log.debug('irList', irList); log.debug('count', count); He

我不知道为什么,但是日志一直在循环,然后我执行了一个时间错误

这是代码


function checkForQuantity(irList, irRec, poId) {
    try {
        var sublistId = 'item'

        var count = irRec.getLineCount('item')

        log.debug('irList', irList);
        log.debug('count', count); Here count = 5

        for (var i = 0; i < count; i++) {

            log.debug('i', i) Here i get only logs of i = 1 and i = 2 

            var irData = irList[i]; 


            log.debug('checkForQuantity | irData ' + i, irData);

            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)
                    }
                }
            }
        }

    } catch (e) {
        log.error('checkForQuantity (for poId: ' + poId + ')', e)
    }

功能检查数量(irList、irRec、poId){
试一试{
var sublistId='item'
变量计数=IREC.getLineCount('项目')
log.debug('irList',irList);
log.debug('count',count);此处count=5
对于(变量i=0;i=0){
IREC.SetPublistValue(子列表“数量”,i,数量)
打破
}否则{
数量-=qtyRem
IREC.SetPublistValue(子列表'quantity',i,qtyRem)
}
}
}
}
}捕获(e){
log.error('checkForQuantity(对于poId:'+poId+'),e)
}
在debug.log上('i',i) 我只得到i=1,i=2
计数是5,但我仍然不能在3和4上循环。这是为什么?

在本期Brian所说的内容中,我们将第二个循环控制变量更改为
j

function checkForQuantity(irList, irRec, poId) {
    try {
        var sublistId = 'item'

        var count = irRec.getLineCount('item')

        log.debug('irList', irList);
        log.debug('count', count); Here count = 5

        for (var i = 0; i < count; i++) {

            log.debug('i', i) Here i get only logs of i = 1 and i = 2 

            var irData = irList[i]; 


            log.debug('checkForQuantity | irData ' + i, irData);

            irRec.setSublistValue(sublistId, 'quantity', i, '')


            var itemId = getItemId(irData.item)

            var quantity = irData.quantity


            for (var j = 0; j < count && quantity; j++) {
                var item = irRec.getSublistValue(sublistId, 'item', j)

                if (item == itemId) {

                    var qtyRem = irRec.getSublistValue(sublistId,
                        'quantityremaining', j)


                    var diff = qtyRem - quantity


                    if (diff >= 0) {
                        irRec.setSublistValue(sublistId, 'quantity', j, quantity)
                        break;

                    } else {
                        quantity -= qtyRem
                        irRec.setSublistValue(sublistId, 'quantity', j, qtyRem)
                    }
                }
            }
        }

    } catch (e) {
        log.error('checkForQuantity (for poId: ' + poId + ')', e)
    }
函数检查数量(irList、irRec、poId){
试一试{
var sublistId='item'
变量计数=IREC.getLineCount('项目')
log.debug('irList',irList);
log.debug('count',count);此处count=5
对于(变量i=0;i=0){
IREC.SetPublistValue(子列表“数量”,j,数量)
打破
}否则{
数量-=qtyRem
IREC.SetPublistValue(子列表'quantity',j,qtyRem)
}
}
}
}
}捕获(e){
log.error('checkForQuantity(对于poId:'+poId+'),e)
}

快速查看:您正在将
i
用于外部
和内部
用于
循环。不要这样做。谢谢!这很有效