如何在NetSuite工作流动作脚本中更新采购订单且不触发其他工作流?
NetSuite中更新采购订单不触发指定审批工作流的解决方案
推荐方案:上下文精准过滤
这是最安全的方式,仅排除目标工作流,不影响其他业务触发器:
- 工作流动作脚本执行时的上下文类型为
WORKFLOW(可通过runtime.executionContext.type获取对应字符串值'workflow') - 过滤配置需在目标审批工作流层面完成:
- 打开审批工作流的「启动选项」页面,添加触发条件:排除上下文类型为
Workflow的场景 - 若审批工作流存在状态转换或动作会被字段更新触发,需在这些转换/动作的条件中同步添加该过滤规则,避免被你的工作流动作脚本触发
- 如需更精准(仅排除你的特定脚本),可在条件中判断
系统信息 > 执行上下文 > 脚本 ID不等于你的工作流动作脚本ID
- 打开审批工作流的「启动选项」页面,添加触发条件:排除上下文类型为
备选方案:全局禁用触发器(谨慎使用)
如果你的更新操作无需触发任何其他触发器(包括脚本、通知等),可使用N/record模块的submitFields方法并设置disableTriggers: true:
const record = require('N/record'); record.submitFields({ type: record.Type.PURCHASE_ORDER, id: 123, // 替换为你的采购订单ID values: { memo: '更新的备注内容' }, options: { disableTriggers: true } });
注意:该参数会禁用所有触发器,可能影响其他必要业务逻辑,仅在确认无依赖时使用。
内容的提问来源于stack exchange,提问作者Viks




