我有一个SS2用户事件脚本,该事件在提交后会在创建商品实现记录时继续运行。
在项目履行记录上有一个自定义列字段custcol_sp_itf_cost,数据类型为Currency。该字段已选中“储值”。
以下代码生成日志记录,以显示它贯穿各行,但未设置字段的值。有人知道为什么吗?
(为简便起见,我在此处删除了日志记录代码。)
function afterSubmit(context)
{
var lineCount = context.newRecord.getLineCount({ sublistId: 'item' });
for (var i = 0; i < lineCount; i++) {
context.newRecord.setSublistValue({
sublistId: 'item',
fieldId: 'custcol_sp_itf_cost',
line: i,
value: 1234
});
}
}
答案 0 :(得分:2)
在afterSubmit
事件中运行代码时,该记录已提交到数据库,因此直接更新newRecord
的任何尝试均将无效。您有两种选择:
beforeSubmit
事件,在这种情况下,setSublistValue
会像您尝试的那样工作。这将是推荐的方法。record.load()
加载新创建的记录,然后调用setSublistValue()
,然后调用record.save()
。您可以在context.newRecord
事件中从afterSubmit
获取记录ID。不建议使用第二种方法,因为重新加载记录并再次保存它比仅更新beforeSubmit
中的值并让NetSuite一次为您保存记录要慢得多。