目录

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';
}

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

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
chat2tomorrow1 天前
如何在数据仓库中集成数据共享服务?
数据仓库·mysql·低代码·数据分析·sql2api
移远通信2 天前
智能硬件开发革命:低代码平台+物联网
python·物联网·低代码·智能硬件
inksci2 天前
低代码控件开发平台:飞帆中粘贴富文本的控件
前端·javascript·低代码
limit00753 天前
CesiumEarth能够本地浏览的三维倾斜模型切片(3DTiles)
chrome·低代码·arcgis·web3·旅游
树上有只程序猿3 天前
企业管理中,一个好用的管理工具为何如此重要?
低代码
iVX研究所5 天前
低代码平台深度拆解:NocoBase 的优势、挑战与 iVX 的破局之道
低代码·ai编程
gaog2zh5 天前
0401react中使用css-react-css-仿低代码平台项目
css·react.js·低代码
NocoBase6 天前
如何用开源工具,把“定制动漫面具”做成柔性制造?
低代码·开源·制造·开发工具·动漫
zkmall6 天前
低代码开发革命:用 ZKmall开源商城可视化逻辑编排实现业务流程再造
低代码·开源·rxjava
chat2tomorrow6 天前
数据仓库的核心架构与关键技术(数据仓库系列二)
数据仓库·低代码·架构·spark·bi·数据中台·sql2api