gpt4 book ai didi

javascript - 如何让 for 循环包含 NetSuite 中用户事件脚本的最后一行?

转载 作者:行者123 更新时间:2023-11-28 16:48:39 24 4
gpt4 key购买 nike

我在 NetSuite 中有一个用户事件脚本,它循环遍历所有销售订单行项目,并根据一些条件自动添加存款。它适用于除最后一行之外的所有行。

几乎可以工作的代码:

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

var sub_field2 = load_so.getSublistValue({
sublistId: 'item',
fieldId: 'item',
line: i
});
log.debug({
title:"Item ID",
details: sub_field2
});
var sub_field1 = load_so.getSublistValue({
sublistId: 'item',
fieldId: 'custcol_vcc_deposit_item',
line: i
});
log.debug({
title:"Deposit Item?",
details: sub_field1
});
var isclosed = load_so.getSublistValue({
sublistId: 'item',
fieldId: 'isclosed',
line: i
});



if(sub_field1 == true && isclosed !== true){
var linkeddepitem = load_so.getSublistValue({
sublistId: 'item',
fieldId: 'custcol_vcc_ldi',
line: i
});
log.debug({
title:"Linked Item ID",
details: linkeddepitem
});

var depqty = load_so.getSublistValue({
sublistId: 'item',
fieldId: 'quantity',
line: i
});
log.debug({
title:"Qty",
details: depqty
});


load_so.insertLine({
sublistId: 'item',
line: i+1
});
load_so.setSublistValue({
sublistId: 'item',
fieldId:'item',
line: i+1,
value: linkeddepitem
});
load_so.setSublistValue({
sublistId: 'item',
fieldId:'quantity',
line: i+1,
value: depqty
});
var lineCountduringloop = load_so.getLineCount({ sublistId: 'item' });
log.debug({
title:"Line Count Before Return",
details: lineCountduringloop
});


};


};

如何确保循环确实经过最后一行?日志表明脚本在未达到应有位置的情况下停止了一行,即检查插入的最后一行是否有条件,但它正确地失败了,然后脚本退出循环;它甚至不在最后一行运行。

感谢您的任何意见!

最佳答案

如果 lineCount 是总行数,则最后一行(在 SS 2.0 中)的索引将为 lineCount - 1。所以你的 for 语句的第一行应该是:

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

不是

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

(注意删除的“=”)

看起来发生的情况是脚本正在尝试对不存在的行进行操作;因此出现错误。这通常称为 off by one error.

关于javascript - 如何让 for 循环包含 NetSuite 中用户事件脚本的最后一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60227655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com