在创建Netsuite记录时,我试图将描述行项目添加到记录的子列表中。
我试图触发在记录提交之前和记录提交之后添加订单项的脚本。
脚本正在触发但是nlapiInsertLineItem函数没有插入一行。
它完美地适用于编辑'但由于某种原因没有在'创建'。
是否有人在Netsuite中创建记录时插入新订单项?
我应该提到这条记录是由webservices创建的。
感谢您的帮助!
我的代码目前是:
function optiv_SFquote_visibility_AS(type){
if(type == 'create'){
var recId = nlapiGetRecordId();
var recType = nlapiGetRecordType();
var rec = nlapiLoadRecord(recType, recId);
var itemCnt = rec.getLineItemCount('item');
var soVals = {};
var j = 0;
for(var i = 1; i <= itemCnt+j; i ++){
var grpNum = rec.getLineItemValue('item', 'custcol_grp_num', i);
if(isNotNull(grpNum) && soVals[grpNum] == undefined){
soVals[grpNum] = grpNum;
j++;
var grpDscrpt = rec.getLineItemValue('item', 'custcol_sf_quote_dscrpt', i);
var grpName = rec.getLineItemValue('item', 'custcol_grp_sf_name', i);
nlapiLogExecution('DEBUG', 'group description', grpDscrpt + ' name ' + grpName);
var newDscrpt = '';
if(isNotNull(grpDscrpt) && isNotNull(grpName)){
var newDscrpt = grpName + ' - ' + grpDscrpt;
}
else if(isNotNull(grpName) && isNull(grpDscrpt)){
var newDscrpt = grpName;
}
rec.insertLineItem('item', i);
rec.setLineItemValue('item', 'item', i, -3);
rec.setLineItemValue('item', 'description', i, newDscrpt);
}
}
nlapiSubmitRecord(rec);
}
}
答案 0 :(得分:0)
我们有类似的情况,如果订单项包含特定字段中的值,我们会将其添加到销售订单。创建销售订单时,它在beforeSubmit
上执行。我们没有使用完整的nlapiInsertLineItem()
函数,而是可以在insertLineItem()
上找到的nlobjRecord
函数。
function addFreightLine(freightInstructions) {
var record = nlapiGetNewRecord();
var newLineNum = record.getLineItemCount('item') + 1;
record.insertLineItem('item', newLineNum);
record.setLineItemValue('item', 'item', newLineNum, 733); // 733 is the 'CF' item
record.setLineItemValue('item', 'description', newLineNum, freightInstructions);
record.setLineItemValue('item', 'rate', newLineNum, 0);
}