如何更新刚刚创建的交易的自定义列字段

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 的尝试都将无效。您有两个选择:

  1. 将您的代码移至 beforeSubmit 事件,在这种情况下,setSublistValue 将像您尝试的那样工作。这将是推荐的方法。
  2. record.load()加载新创建的记录,然后调用setSublistValue(),然后调用record.save()。您可以在 afterSubmit 事件中从 context.newRecord 获取记录 ID。

第二个选项不是推荐的方法,因为 re-loading 记录并再次保存它比仅更新 beforeSubmit 中的值并让 NetSuite 为您保存一次记录要慢得多.