Javascript NetSuite脚本,用于在提交后从一个行级别字段更新另一个行级别字段
首先,我对NetSuite中的脚本编写非常陌生,所以请原谅我的代码太过繁琐 我正在尝试创建一个脚本(是的,我知道这可以在工作流中完成),该脚本通过销售订单的行进行循环,并在保存订单后将行“金额”复制到“altsalesamt”字段。脚本运行正常,但实际上没有做任何事情Javascript NetSuite脚本,用于在提交后从一个行级别字段更新另一个行级别字段,javascript,netsuite,Javascript,Netsuite,首先,我对NetSuite中的脚本编写非常陌生,所以请原谅我的代码太过繁琐 我正在尝试创建一个脚本(是的,我知道这可以在工作流中完成),该脚本通过销售订单的行进行循环,并在保存订单后将行“金额”复制到“altsalesamt”字段。脚本运行正常,但实际上没有做任何事情 function afterSubmit_setASA(){ var soItemCount = nlapiGetLineItemCount('item'); for (var i = 1; i <= so
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);
}
}
}
submit_setASA()后的函数{
var soItemCount=nlapiGetLineItemCount('item');
对于(var i=1;i您忘记提交:NLAPSubmitRecord(…) 您也可以尝试以下代码:
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);
var record=nlapioadrecord(nlapiGetRecordType(),nlapiGetRecordId());
var soItemCount=record.getLineItemCount('item');
对于(var i=1;i您正在After Submit事件中执行此操作。此时,记录已提交到数据库。您有两个选项:
正如@eliseobeltran所说,您可以先加载并提交记录
将您的现有代码移到“提交前”事件
我建议使用选项2,因为这样可以减少治理,提高性能,减少数据库查询