更新记录节点
更新记录节点用于在工作流执行过程中,自动修改已有记录的字段值。它既可以更新「触发记录(当前记录)」本身,也可以跨表批量更新「关联表」中的相关记录,常用于根据业务规则更新状态、标记、时间戳,或把当前记录的变化同步到关联数据。
适用场景
- 审批通过后自动将状态更新为「已通过」
- 订单发货后更新发货时间,并同步给关联的「物流表」记录
- 客户信息变更时,批量更新其名下「订单表」中未完成的订单状态
- 满足条件后自动给记录打标签 / 写入完成时间
配置项

更新记录节点包含两类更新能力:
- 自身字段更新:直接更新当前触发记录的字段(见「字段更新映射」)。
- 关联表同步更新:跨表更新关联表中的一条或多条记录(见「关联表同步更新」)。
更新对象
更新记录节点默认更新触发记录。也可以通过表达式指定其他记录 ID(高级用法,详见下方引用表达式)。
字段更新映射(自身)
配置要更新的字段及其新值:
| 配置项 | 说明 |
|---|---|
| 字段 | 要更新的目标字段(当前表) |
| 值模板 | 静态值或引用表达式 |
- 静态值:直接输入固定值,例如 状态 = "已完成"、是否归档 = true。
- 引用表达式:通过
{{}}引用上下文变量,例如:
{{trigger.record.<字段ID>}}
{{node_<节点ID>.<字段ID>}}
{{loop.current_data.<字段ID>}}
{{NOW}}关联表同步更新
关联表同步更新用于:当当前记录发生变化时,自动更新「另一张表」中与之相关的记录。可以添加多个同步更新任务,每个任务相互独立、各自执行。
点击「添加关联表更新」可新增一个同步任务。每个任务包含以下配置项。
关联表
选择需要被同步更新的目标表。当当前记录发生变化时,系统会依据下方条件,对该表中的相关记录执行更新。
关联字段(可选)
通过关联字段自动定位关联表中需更新的记录。
- 选择关联字段后,系统仅更新「当前记录中该关联字段所指向」的那条(或那些)关联记录。
- 留空时,不对记录做关联定位,而是对目标表的全表记录按下方「关联表筛选条件」进行过滤——适合需要按条件批量更新整张关联表的场景。
关联字段通常是当前表中类型为「关联记录 / 双向关联」的字段,其值为关联记录的 ID。
关联表筛选条件
仅更新关联表中满足以下条件的记录;不设置任何条件时,更新关联表中的全部候选记录(候选范围由「关联字段」决定:指定了关联字段则为该字段指向的记录,未指定则为目标表全部记录)。
条件中的字段取自【关联表】本身。可以为该组条件选择「且 / 或」组合关系:
- 且(全部满足):所有条件都满足的记录才会被更新。
- 或(任一满足):任意一个条件满足的记录即被更新。
同步触发方式
决定本次同步更新在什么情况下执行:
| 选项 | 说明 |
|---|---|
| 始终同步 | 每次当前记录变更都执行该同步任务 |
| 满足条件时同步 | 仅当「同步触发条件」成立时才执行 |
同步触发条件
当「同步触发方式」选择「满足条件时同步」时出现。用于判断本次是否要执行同步更新:当前记录发生变更后,仅当关联表中存在满足以下条件的记录时,才执行本次同步更新。
条件中的字段取自【关联表】。多个条件之间支持「且 / 或」组合:
- 且(全部满足):仅当存在一条关联记录同时满足所有条件时,才执行同步。
- 或(任一满足):只要存在任意一条关联记录满足条件,即执行同步。
与「关联表筛选条件」的区别
- 同步触发条件决定本次同步「要不要执行」(基于关联表中是否存在匹配记录);不满足则整组关联更新被跳过。
- 关联表筛选条件决定关联表中「哪些记录会被更新」(逐条过滤候选记录)。
- 两者的字段都取自关联表,且都可以独立设置「且 / 或」关系。
字段映射
配置要把哪些值写入关联记录的哪些字段(可添加多条):
| 配置项 | 说明 |
|---|---|
| 目标字段 | 关联表中要写入的字段 |
| 值模板 | 静态值,或引用表达式(可引用当前记录、关联记录等上下文) |
字段映射中可用的引用表达式示例:
{{trigger.record.<字段ID>}} # 当前触发记录的字段
{{target_record.<字段ID>}} # 被更新的关联记录自身的字段
{{NOW}} # 当前时间每个关联表同步更新任务必须至少配置一条字段映射,否则该任务不会执行任何更新。
执行逻辑
当更新记录节点被触发时,按以下顺序执行:
- 解析「自身字段更新」映射,渲染得到主记录的待写入值。
- 依次处理每个「关联表同步更新」任务:
- 若「同步触发方式」为「满足条件时同步」,先校验同步触发条件;不满足则跳过该任务。
- 解析候选关联记录(由关联字段定位,或目标表全表)。
- 逐条用「关联表筛选条件」过滤候选记录(满足才纳入)。
- 将「字段映射」渲染后写入命中的关联记录。
- 主记录与所有关联记录的更新在同一个数据库事务中提交:只要其中任意一步失败,全部回滚,保证多表数据一致。
使用示例
示例一:更新自身状态
审批通过后,把当前记录的状态改为「已通过」、完成时间写为当前时间:
| 字段 | 值模板 |
|---|---|
| 状态 | 静态值:已通过 |
| 完成时间 | {{NOW}} |
示例二:按条件批量同步关联表(全表筛选)
场景:当「客户」记录被标记为「VIP」时,把其关联「订单表」中状态为「进行中」的订单统一标记为「优先处理」。
- 关联表:订单表
- 关联字段:(留空,按筛选条件过滤全表)
- 关联表筛选条件:
客户ID = {{trigger.record.id}}且状态 = 进行中 - 同步触发方式:始终同步
- 字段映射:状态 → 静态值「优先处理」
示例三:仅当当前记录满足某条件时同步
场景:仅当「当前记录」状态变为「已发货」时,才把关联物流记录更新为「已揽收」。
- 关联表:物流表
- 关联字段:物流单(指向物流记录)
- 同步触发方式:满足条件时同步
- 同步触发条件:
状态 = 已发货(且) - 字段映射:物流状态 → 静态值「已揽收」
注意事项
- 默认更新触发记录;更新其他记录需提供正确的记录 ID(高级用法)。
- 系统字段(如创建人、创建时间)通常不可更新。
- 更新操作会触发记录更新事件:若工作流配置了「记录更新」触发器,需注意避免循环触发。
- 多个同步更新任务彼此独立;任一任务失败会导致整次更新回滚(主记录 + 关联记录均不写入)。
- 「关联表筛选条件」与「同步触发条件」均支持「且 / 或」切换,缺省均为「且」。
