NetSuite 中的标准模式和动态模式有何区别?

What's the difference of Standard and Dynamic modes in NetSuite?

请参阅 NetSuite 的 SuiteScript 2.0 API 文档。要设置子列表字段的值,请在 STANDARD 模式下使用“Record.setSublistValue(options)”。

DYNAMIC模式下,使用以下方法一一设置子列表字段值:

  1. Record.selectLine(选项)

  2. Record.setCurrentSublistValue(选项)

  3. Record.commitLine(选项)

但是 STANDARDDYNAMIC 模式是什么? 它们有什么区别?

简而言之,动态模式 运行 在您设置每个字段时进行字段来源和验证,而标准模式(或延迟动态模式,在 NetSuite 文档中也称为)不会 运行现场采购和验证,直到您致电 record.save().

这意味着动态模式更像 UI,其中设置字段的顺序很重要。如果您手动设置来源字段,您最终得到的值可能取决于您是在触发来源的字段之前还是之后设置它。在 STANDARD 模式下,这不是问题 - 您将始终以相同的值结束。

可以找到更多信息 here(需要登录 NetSuite)。

Dynamic 表示它在被操纵时立即做出反应。例如,当您将商品添加到动态加载的订单中时,总价 等字段将立即重新计算,您无需保存订单即可从记录中获取它们。

如果记录被加载 非动态总价 字段将在记录加载时开始具有值,并将在您保存记录之前不会更新。

当您在 record.load 调用中使用 isDynamic: true 时,记录以动态模式加载:

var r = record.load({
    type: record.Type.SALES_ORDER,
    id: 123,
    isDynamic: true,
});

使用非动态记录更快 - 如果您不打算使用动态记录,请不要使用它。 (比如保存记录前获取总价)