首先,我对NetSuite中的脚本非常陌生,所以请原谅这些糟糕的代码。
我正在尝试创建一个脚本(是的,我知道这可以在工作流程中完成),该脚本循环回销售订单的行并复制该行的数量'到了#altsalesamt'保存订单后的字段。脚本运行正常,但实际上并没有做任何事情。
function afterSubmit_setASA(){
var soItemCount = nlapiGetLineItemCount('item');
for (var i = 1; i <= soItemCount; ++i) {
var lineamt = nlapiGetLineItemValue('item', 'amount', i);
if (lineamt != null && lineamt != '') {
nlapiSetLineItemValue('item', 'altsalesamt', i, lineamt);
}
}
}
有人能指出我可能需要改变或做的正确方向吗?非常感谢任何帮助!!
答案 0 :(得分:2)
您在After Submit事件中执行此操作。此时,记录已经提交到数据库。您有两种选择:
我建议使用选项2,因为这会使用更少的治理,性能更高,并且可以减少数据库查询。
答案 1 :(得分:0)
您忘了提交:nlapiSubmitRecord(...);
您也可以尝试以下代码:
var record = nlapiLoadRecord(nlapiGetRecordType(), nlapiGetRecordId());
var soItemCount = record.getLineItemCount('item');
for (var i = 1; i <= soItemCount; ++i) {
var lineamt = record.getLineItemValue('item', 'amount', i);
if (lineamt != null && lineamt != '') {
record.setLineItemValue('item', 'altsalesamt', i, lineamt);
}
}
var id = nlapiSubmitRecord(record, true);