REBUILD 高级计算公式实战

高级计算公式在触发器 字段更新 中使用,是 RB 最强大的功能之一。他可以根据业务需要计算出您需要的值并进行自动更新。介于高级计算公式的强大能力,其使用也需要一定的技术门槛,且具有一定的复杂度。

本文将通过一些示例介绍触发器的使用,希望对您有一定启发。在开始前,您需具备以下能力,否则可能无法理解本文所涉内容。

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

高级计算公式基于 Aviator 脚本语言,实际上当您在编写公式时就是在编写 Aviator 脚本

基础示例

从最简单的例子开始,如下图所示。

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

  • ## 开头的一行是注释,不是必须的。注释在实际执行时不起作用,只是在编写复杂公式时通过注释可以帮助我们更好的理解
  • {district} {address} 是字段内部标识,可以看出他使用 {} 包裹起来,这是必须的

基于上述示例我们再进一步,如果地区和地址为空,我们就不拼接,该如何编写?请参考:

go 复制代码
if ({district} == nil && {address} == nil) {
  return nil;
} else {
  return {district} + "-" + {address};
}

可以看到,这是一个多行的公式,因此他需要完整的语法表达,包括:

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

如上,若您能理解并通过上述示例举一反三,恭喜您已具备编写高级计算公式的能力。

示例列表

根据企业注册时间修改客户等级

实体和字段

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

公式

kotlin 复制代码
## 未填写企业注册日期则返回原值(即不做修改)
if (ISNULL({registrationDate})) {
  return {accountLevel};
}

## 用当前日期减去企业注册日期得出注册天数
let xday = CURRENTDATE() - {registrationDate};

## 根据注册天数返回客户等级
## 请注意下拉列表需要返回 ID,详情参阅 https://getrebuild.com/docs/admin/trigger/fieldwriteback#%E5%AD%97%E6%AE%B5%E5%8F%98%E9%87%8F%E5%80%BC%E8%AF%B4%E6%98%8E 
## 具体 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';
}

更多示例陆续编写中......

相关推荐
阿吉被迫了解低代码1 天前
🚀 被迫认识低代码 之 Oinone上手二开前端组件
低代码
轻流AI3 天前
线索转化率翻3倍?AI重构CRM
大数据·人工智能·低代码·重构
首先要睡饱6 天前
学习腾讯无极低代码的第六天——Part1
低代码·腾讯
NocoBase6 天前
欧洲蘑菇巨头 Okechamp 如何用 6 周升级物流调度系统?
低代码·开源·资讯
霍格沃兹测试开发学社测试人社区7 天前
Dify入门指南(2):5 分钟部署 Dify:云服务 vs 本地 Docker
人工智能·低代码
得帆云低代码8 天前
2025平台进化趋势:AI与低代码重塑企业应用构建引擎(上)
低代码·openai·ai编程
pengzhuofan10 天前
项目一系列-第4章 在线接口文档 & 代码模板改造
低代码·ruoyi
Spider_Man12 天前
预览一开,灵魂出窍!低代码平台的魔法剧场大揭秘🎩✨
前端·低代码·typescript