触发器

概述

触发器不是由外部程序调用,也不是手工执行,而是由 RB 系统事件来触发的。其可以理解为发生了指定事件,触发一个/多个指定操作。触发器经常用于加强数据的完整性约束和业务规则。

在 RB 中,您可以使用已经定义好的触发器来完成特点的业务规则。触发器由以下几种事件来触发:

  • 新建时
  • 更新时
  • 删除时
  • 分派时
  • 共享时
  • 取消共享时
  • 审批通过时
  • 审批撤回时
  • 定时执行

定时执行一般适用于无需实时触发的情况,通常配合 附加过滤条件 使用。如触发的数据量过大,可能消耗较多资源,请谨慎使用

添加触发器

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

  1. 选择触发器类型
  2. 选择触发源实体

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

  1. 当发生指定的事件时触发该触发器
  2. 可以配置过滤条件排除某些数据
  3. 根据不同的触发器类型,此处的触发内容也将不同
  4. 如果一个实体有多个触发器,可以配置触发的时机(先后顺序)

配置触发器

系统提供了多种触发器,每种触发器都有对应的业务场景。我们将在后续版本持续提供更多的触发种类,以便满足更多业务场景。目前支持的触发器:

数据聚合

数据聚合用于将多个值聚合为一个值,例如订单明细中的小计金额(求和)到订单的总计金额,或计算客户的客单价(平均值)等。数据聚合一般应用在 1:N 关系中,如 1订单:N明细 1客户:N订单 等。

数据聚合提供的聚合方式包括求和、计数、平均值以及复杂的计算表达式等。

  1. 根据需求配置聚合规则并点击添加,支持添加多个
  2. [自动设置目标字段为只读] 能够对数据严谨性提供约束,建议启用
  3. 可以近针对符合条件的数据进行聚合运算

自动更新 (数据转写)

自动更新(原数据转写)与数据聚合共同为 RB 提供强大的动态运算能力,但数据聚合一般应用在 1:N 关系,而自动更新一般应用在 1:1 关系中。

自动更新支持(从关联字段)字段赋值、固定值、计算公式等更新方式,并且对所有字段(类型)均提供支持。需要注意的是,不同字段类型之间的转换会导致一定的精度损失(例如小数转整数)。

  1. 目标实体,即要更新的字段属于哪个实体
  2. 根据需求配置更新规则并点击添加,支持添加多个
  3. [自动设置目标字段为只读] 能够对数据严谨性提供约束,建议启用

使用函数

RB 目前提供了一些针对日期的函数,使用函数需要保证其语法的正确性,并保证函数返回值与目标字段类型兼容。

? 函数变量(值)都需要使用 ` 符号包裹(参考上述截图)

DATEDIFF
  • 作用:比较两个日期(时间),得出差值(数字)
  • 语法:DATEDIFF($DATE1, $DATE2, [H|D|M|Y])
    • $DATE1$DATE2 表示日期,可以是日期字段,也可以是具体的日期值,如 2021-01-01
    • [H|D|M|Y] 表示差值单位(可选,默认为 D)。H 表示小时,D 表示天,M 表示月,Y 表示年
DATEADD
  • 作用:将日期(时间)加,得出新值(日期)
  • 语法:DATEADD($DATE, $NUMBER[H|D|M|Y])
    • $DATE 表示日期,可以是日期字段,也可以是具体的日期值,如 2021-01-01
    • $NUMBER 表示数字,可以是数字字段,也可以是具体的数字值,如 30
    • [H|D|M|Y] 表示数字单位(可选,默认为 D)。H 表示小时,D 表示天,M 表示月,Y 表示年
DATESUB
  • 作用:将日期(时间)减,得出新值(日期)
  • 语法:DATESUB($DATE, $NUMBER[H|D|M|Y])
    • $DATE 表示日期,可以是日期字段,也可以是具体的日期值,如 2021-01-01
    • $NUMBER 表示数字,可以是数字字段,也可以是具体的数字值,如 30
    • [H|D|M|Y] 表示数字单位(可选,默认为 D)。H 表示小时,D 表示天,M 表示月,Y 表示年

函数可以支持复杂的嵌套逻辑,只要保证其语法正确即可

发送通知

发送通知通常用于获知数据的变化,或当数据变化时通知相关用户。例如一个新的线索被添加。

自动分派

自动将某些记录分派给相应的用户。例如新的客户资源产生,将其分配给不同的销售人员以便其进行跟进。

自动共享

自动将某些记录共享给相应的用户。

自动审批

自动审批某些无需人工介入的记录。例如对金额小于 1000 元的订单进行自动审批,而非必须人工介入,提升工作效率。更多详情参见 审批流程

回调 URL ~~v2.1

回调 URL 主要用于与三方系统对接。当发生指定动作时 RB 将会以 POST 的方式将数据(JSON 格式)发送到指定的 URL。

POST 数据格式示例

{
  "user": "002-0000000000000000",     // 操作人
  "action": "DELETE",                 // 动作
  "recordId": "999-0000000000000001", // 操作记录ID
  "recordData": xxx                   // 操作记录数据(若有)
}

自动记录转换 ~~v2.2

自动记录转换可以将 记录转换 自动化执行,减少无意义的手动操作。通常配合数据过滤条件使用,当记录符合条件时执行自动转换。

编辑更新时间 4/17/2021, 1:34:56 PM