高档计算公式在触发器 字段更新 中运用,是 RB 最强大的功能之一。他能够依据事务需求计算出您需求的值并进行自动更新。介于高档计算公式的强大能力,其运用也需求必定的技能门槛,且具有必定的复杂度。

本文将经过一些示例介绍触发器的运用,期望对您有必定启发。在开始前,您需具备以下能力,不然可能无法了解本文所涉内容。

  1. 对编程语言有必定了解
  2. 了解 RB 的 触发器字段更新
  3. 了解 Aviator 脚本语言

高档计算公式依据 Aviator 脚本语言,实践上当您在编写公式时就是在编写 Aviator 脚本

基础示例

从最简略的比如开始,如下图所示。

REBUILD 高档计算公式实战

此示例用于将地区 district 和地址 address 拼接为一个完整地址,而且中间用 - 相连。其间:

  • ## 最初的一行是注释,不是有必要的。注释在实践执行时不起作用,只是在编写复杂公式时经过注释能够协助咱们更好的了解
  • {district} {address} 是字段内部标识,能够看出他运用 {} 包裹起来,这是有必要的

依据上述示例咱们再进一步,如果地区和地址为空,咱们就不拼接,该怎么编写?请参考:

if ({district} == nil && {address} == nil) {
  return nil;
} else {
  return {district}   "-"   {address};
}

能够看到,这是一个多行的公式,因而他需求完整的语法表达,包括:

  • 尾部运用 ; 结束(相较于上述单行示例无需 ;
  • 经过 return 来回来咱们需求的值(相较于上述单行示例无需 return
  • 其间 nil 代表空(其他编程语言一般运用 null 请注意区分)

如上,若您能了解并经过上述示例举一反三,祝贺您已具备编写高档计算公式的能力。

示例列表

依据企业注册时间修正客户等级

实体和字段

  • 实体1:Account
  • 要害字段:
字段 字段类型 阐明
registrationDate 日期 企业注册日期
accountLevel 下拉列表 客户等级

公式

## 未填写企业注册日期则回来原值(即不做修正)
if (ISNULL({registrationDate})) {
  return {accountLevel};
}
## 用当前日期减去企业注册日期得出注册天数
let xday = CURRENTDATE() - {registrationDate};
## 依据注册天数回来客户等级
## 请注意下拉列表需求回来 ID,概况参阅 https://getrebuild.com/docs/admin/trigger/fieldwriteback#字段变量值阐明 
## 详细 ID 值可经过 OpenAPI 获取 https://getrebuild.com/docs/dev/how-use-apis
if (xday > 3650) {
  return '012-018dcbe2fa5b003d';
} elsif (xday > 1825) {
  return '012-018dcbe2fa5b003a';
} elsif (xday > 365) {
  return '012-018dcbe2fa5b003c';
} else {
  return '012-018dcbe2fa5b0031';
}

更多示例连续编写中……