高档计算公式在触发器 字段更新 中运用,是 RB 最强大的功能之一。他能够依据事务需求计算出您需求的值并进行自动更新。介于高档计算公式的强大能力,其运用也需求必定的技能门槛,且具有必定的复杂度。
本文将经过一些示例介绍触发器的运用,期望对您有必定启发。在开始前,您需具备以下能力,不然可能无法了解本文所涉内容。
高档计算公式依据 Aviator 脚本语言,实践上当您在编写公式时就是在编写 Aviator 脚本
基础示例
从最简略的比如开始,如下图所示。
此示例用于将地区 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';
}
更多示例连续编写中……