触发器

触发器可以实现自动化、个性化的业务流程处理,例如为客户发送生日提醒、服务到期提醒、汇总客户总成交金额、自动审批、根据 A 字段的值自动填写 B 字段的值,甚至调用外部程序接口等等。

RB 的触发器采用 IFTTT 模式,其核心思想为“如果怎样,就怎样”,例如“如果合同审批通过,就创建订单”、“如果客户生日,就发送短信”等等。触发器是 RB 核心功能之一,支持丰富的自动化处理。

添加触发器

要添加触发器,首先进入管理中心 - 触发器,然后点击页面右上角的 [添加] 按钮。

  1. 根据需要选择合适触发器类型
  2. 选择触发源实体,即此触发器通过选择的实体触发

选择/填写完成后点击 [确定] 按钮,系统将进入下一步对触发器进行完整配置。

  1. 源实体
  2. 当(源实体记录)发生指定“动作”时执行该触发器
  3. 通过配置附加过滤条件进一步限定只有符合的数据才会被触发
  4. 触发器类型
  5. 根据不同的触发器类型,此处的触发内容也不同。详见 触发器类型
  6. 如果一个实体有多个触发器,且存在依赖,可配置触发的执行顺序。详见 理解优先级
  7. 立即执行此触发器(详情参见下文) ~~v3.1

触发动作中的“审批通过时”是指最终通过(即审批完成),而非某一审批步骤通过。同时注意部分触发动作可能不被源实体所支持,例如一个未开启审批流程的实体不会产生审批相关动作

附加过滤条件在“删除时”可能因无法匹配导致触发器无法触发,此类场景建议分成两个触发器(将删除动作独立出去,且不要配置附加过滤条件)

更新指定字段执行

“更新时”动作同时支持指定字段,即指定字段更新时才执行,若不指定则只要更新就会执行。

指定审批步骤执行 ~~v3.8

“审批通过时”动作同时支持指定审批步骤,即指定步骤审批通过时才执行。若不指定则仅最终通过(即审批完成)时才执行。审批步骤名称是您在审批流程节点中设置的名称。

定期执行

触发器除了在特定动作下触发执行,也可以被“定期执行”。对于那些没有合适触发时机或需要定期触发的业务(动作)特别有用(例如发送客户生日提醒)。

请注意下图中的执行时段,默认为 0~24 点,您可以根据需要选择指定的时段内执行。例如每天执行 2 次,执行时段选择 0~24 点,其执行时间分别为 0:00 和 12:00 点;执行时段选择 9~18 点,其执行时间分别为 9:00 和 13:00 点。

若您选择“每天”执行,其最大执行次数为 24 次(每小时一次);若“每月”执行,其最大执行次数为当月天数(每天一次);若“每小时”执行,其最大执行次数为 60 次(每分钟一次)

立即执行

立即执行触发器,而不用等待特定的动作才执行。如您的数据较多耗时会较长,因此建议您在非业务繁忙阶段执行此操作。

? 如触发器已修改请先保存,未保存的修改在立即执行时不会生效

可用触发器

RB 提供了丰富的触发器用于满足各种业务场景。我们将在后续版本中提供更多触发器,以便满足您的更多业务需要。

类型 说明
字段更新 用于更新关联实体(或自身),支持丰富的更新方式
字段聚合 用于聚合多条记录(例如订单明细聚合到订单),支持丰富的聚合方式
分组聚合 字段聚合的增强版
数据校验 用于验证数据是否符合要求
发送通知 用于向内部/外部用户发送通知,支持丰富的发送方式
自动审批 审批流程 自动化
自动分配 记录分配 自动化
自动共享 记录共享 自动化
自动取消共享 记录取消共享 自动化
自动记录转换 记录转换 自动化
自动删除 自动删除无效数据
新建动态 自动新建 动态
新建任务 自动新建 任务
回调 URL 用于三方系统对接,当数据变更时通知第三方系统
导出报表 自动导出报表到目录或发送到指定邮箱等

高级主题

级联执行

某些触发器可能会引起级联执行,例如 A 触发器用于更新某实体字段值,当某实体字段值被更新后,会被动触发“更新”动作,从而引起 B 触发器(若有)执行,B 触发器又可能引起 C 触发器(若有)执行… 简而言之,无论“更新”动作是如何发生(如手动更新、API 更新、触发器更新等),其对应的触发器都会被执行。

同时,如果两个(或多个)触发器之间存在循环级联执行,RB 会自动检测并避免死循环的发生,您通常无需关心此问题。

自 V3.8 开始,您可以在触发器中开启“禁用级联执行”(仅会产生级联效应的触发器支持)

理解优先级

优先级只在同一源实体的同一动作时才有意义。例如 A 实体有两个触发器(T1 和 T2),且均在“更新”时执行,此时可以通过配置优先级使 T1 和 T2 的执行顺序可控。但如果 T1 是在“更新”时执行,T2 是在“删除”时执行,则优先级的配置将没有意义。

优先级设置

当一个操作产生了多个触发器执行,通常情况下他们会在一个事物中执行(要么都成功要么都失败),但有些触发器例外。例如对于发送通知而言,若邮件/短信等已经发送,即使操作失败了也无法撤回。所以此触发器的优先级应尽量设置的足够小,以便让其最后执行(让前面的触发器先执行)。以下是应注意的触发器及优先级建议:

  • 数据校验:先执行
  • 发送通知:后执行
  • 回调 URL:后执行

过滤条件中使用字段变量

在触发器的高级查询组件中,您可以使用字段变量作为条件值进行更加灵活的条件判断。在以下配置中变量可用:

  1. 附加过滤条件
  2. 聚合数据条件
  3. 数据校验条件

字段变量以 {@ziduan} 格式填写,在实际执行时会使用触发记录作为源数据,并提取其对应字段值替换变量为实际值进行查询操作。

? 本功能仅对商业版本有效,且部分字段可能暂未支持填写字段变量

自动性能优化

在一些触发器中,系统会自动判定触发器执行内容是否会对目标记录产生影响。如果执行内容的结果与目标记录一致,系统可能会跳过执行。因此,当我们修改了无需参与执行内容计算的字段时,触发器并不会产生实际执行,以此提高执行效率。同时注意,如果跳过执行其可能存在的 级联执行 也不会被执行。

该文档内容对您是否有帮助?没有
您也可以通过 社区群组 向我们反馈问题
更新时间 2025-02-15
目录