如何更新刚刚创建的交易的自定义列字段
How to update custom column field on just created transaction
我有一个 SS2 用户事件脚本,它在创建项目履行记录时在提交后运行。
项目履行记录上有一个数据类型为货币的自定义列字段 custcol_sp_itf_cost。该字段已选中存储值。
以下代码生成日志记录以显示它贯穿各行但未设置字段的值。有人知道为什么吗?
(为简洁起见,我删除了此处的日志记录代码。)
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
});
}
}
当 运行 代码在 afterSubmit
事件中时,记录已经提交到数据库,因此任何直接更新 newRecord
的尝试都将无效。您有两个选择:
- 将您的代码移至
beforeSubmit
事件,在这种情况下,setSublistValue
将像您尝试的那样工作。这将是推荐的方法。
- 用
record.load()
加载新创建的记录,然后调用setSublistValue()
,然后调用record.save()
。您可以在 afterSubmit
事件中从 context.newRecord
获取记录 ID。
第二个选项不是推荐的方法,因为 re-loading 记录并再次保存它比仅更新 beforeSubmit
中的值并让 NetSuite 为您保存一次记录要慢得多.
我有一个 SS2 用户事件脚本,它在创建项目履行记录时在提交后运行。
项目履行记录上有一个数据类型为货币的自定义列字段 custcol_sp_itf_cost。该字段已选中存储值。
以下代码生成日志记录以显示它贯穿各行但未设置字段的值。有人知道为什么吗?
(为简洁起见,我删除了此处的日志记录代码。)
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
});
}
}
当 运行 代码在 afterSubmit
事件中时,记录已经提交到数据库,因此任何直接更新 newRecord
的尝试都将无效。您有两个选择:
- 将您的代码移至
beforeSubmit
事件,在这种情况下,setSublistValue
将像您尝试的那样工作。这将是推荐的方法。 - 用
record.load()
加载新创建的记录,然后调用setSublistValue()
,然后调用record.save()
。您可以在afterSubmit
事件中从context.newRecord
获取记录 ID。
第二个选项不是推荐的方法,因为 re-loading 记录并再次保存它比仅更新 beforeSubmit
中的值并让 NetSuite 为您保存一次记录要慢得多.