netsuite - 如何更新刚刚创建的交易的自定义列字段
问题描述
我有一个 SS2 用户事件脚本,它在创建项目履行记录时在提交后运行。
Item Fulfillment 记录上有一个自定义列字段 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
});
}
}
解决方案
在afterSubmit
事件中运行代码时,记录已经提交到数据库,因此任何newRecord
直接更新的尝试都将不起作用。你有两个选择:
- 将您的代码移动到
beforeSubmit
事件中,在这种情况下,setSublistValue
它将像您尝试做的那样工作。这将是推荐的方法。 record.load()
使用then call加载新创建的记录setSublistValue()
,然后调用record.save()
。您可以从事件context.newRecord
中获取记录 ID 。afterSubmit
第二个选项不是推荐的方法,因为重新加载记录并再次保存比仅更新您的值beforeSubmit
并让 NetSuite 为您保存一次记录要慢得多。
推荐阅读
- go - Golang - 从 COBRA 命令内部设置环境变量
- java - install4j:如何在 version8 上创建跨平台 jre 包?
- r - read.csv 导入两列而不是一列
- java - 在 .word 文件中插入带有 apache-poi 的图像,增加图像大小
- typescript - 如何删除自定义声明
- rake - Rails v6.0.0 推送到 Heroku 失败 - Rake & Bundler 错误消息
- generics - 方法接收共享相同继承类的类引用
- go - 我想在接收命令行输出的同时接收命令行输入
- angular - Angular 7 + Feathersjs 仅将更新的对象作为数组返回
- python - 为什么梯度下降在 pytorch 中不能按预期工作