Javascript SuiteScript-删除行不删除最后一行
我已经创建了一个pageInit SuiteScript,如果销售订单上的行项目填写了自定义字段,那么它应该删除这些行项目。我遇到的问题是,如果它是最后一行,并且没有其他行具有丢失值,它将不会删除该行Javascript SuiteScript-删除行不删除最后一行,javascript,netsuite,suitescript,Javascript,Netsuite,Suitescript,我已经创建了一个pageInit SuiteScript,如果销售订单上的行项目填写了自定义字段,那么它应该删除这些行项目。我遇到的问题是,如果它是最后一行,并且没有其他行具有丢失值,它将不会删除该行 function pageInit(context) { var objRec = context.currentRecord; var itemsLength = objRec.getLineCount({ sublistId: 'item' });
function pageInit(context) {
var objRec = context.currentRecord;
var itemsLength = objRec.getLineCount({
sublistId: 'item'
});
for (var i = itemsLength-1; i >= 0; i--){
var loss = objRec.getSublistValue({
sublistId: 'item',
fieldId: 'custcol_linelossreason',
line: i
});
if (loss) {
objRec.removeLine({
sublistId: 'item',
line: i,
ignoreRecalc: true
});
log.debug('removed', 'Line ' + i + ' has been removed.');
} else {
log.debug('no removal', 'Line ' + i + ' will remain.');
}
}
我能找到的唯一一件事是,也许那条线丢失了损失值。。。?我用你的代码进行了测试,去掉了丢失的部分,效果非常好。下面是我试过的
**
* @NApiVersion 2.x
* @NScriptType ClientScript
* @NModuleScope SameAccount
*
*/
define(['N/record'],function(record){
function pageInit(context){
var objRec=context.currentRecord;
var itemsLength=objRec.getLineCount({
sublistId:'item'
});
log.debug('itemsLength',itemsLength);
for(var i=itemsLength-1;i>=0;i--){
log.debug('running line ',i+' of '+itemsLength);
/*
var loss=objRec.getSublistValue({
sublistId:'item',
fieldId:'custcol_linelossreason',
line: i
});
*/
//if(loss){
objRec.removeLine({
sublistId:'item',
line:i,
ignoreRecalc:true
});
log.debug('removed','Line '+i+' has been removed.');
/*
}else{
log.debug('no removal','Line '+i+' will remain.');
}
*/
}
}
return{
pageInit:pageInit
}
});
谢谢你的回复!您的代码在我的环境中不起作用,这让我更深入地挖掘。事实证明,我有两个相同脚本的实例在运行,因此它们彼此冲突。是的,这肯定会解决问题。:)很高兴你发现了这个问题!仅供参考,如果您还没有,请确保查看NetSuite专业版。:)