ASTRO轻应用 ASTROZERO-使用校验器和触发器:为对象配置内嵌触发器
为对象配置内嵌触发器
AstroZero支持用户给对象增加内嵌触发器,实现在增/删/改对象的记录数据时,自动执行内嵌触发器脚本(该脚本由用户自定义,其实就是一段普通的TypeScript脚本,没有输入输出参数)。例如,在对象记录插入前、记录插入后、记录更新前、记录更新后、记录删除前或者记录删除后,自动执行内嵌触发器脚本。
下面以之前创建的对象“CNAME__Class__ CS T”为例,创建一个记录删除后的触发器,实现在删除一条“CNAME__Class__CST”对象的记录后,把相应的“name”、“CNAME__number__CST”数据记录到日志对象“CNAME__log__CST”中。在此需要提前创建如下的日志对象“CNAME__log__CST”,如何创建请参考上一节中对象“CNAME__Class__CST”的创建过程。
对象 |
字段来源 |
字段名称 |
字段数据类型 |
---|---|---|---|
CNAME__log__CST |
自定义字段,手动创建 |
CNAME__operator__CST |
文本,数据长度36。 |
自定义字段,手动创建 |
CNAME__className__CST |
文本 |
|
自定义字段,手动创建 |
CNAME__classNumber__CST |
数字,表示班级编号。 |
- 在对象“CNAME__Class__CST”配置页面,单击“内嵌触发器”页签,再单击“新建”。
图5 新建内嵌触发器
- 输入触发器的基本信息,单击“保存”。
图6 输入信息
表3 内嵌触发器参数说明 参数
参数说明
标签
内嵌触发器在用户界面展示的名称。
名称
内嵌触发器的名称,单击后默认自动生成,与“标签”值保持一致。
事件触发时机
内嵌触发器在什么时候生效,可直接在下拉框中选择。即在系统执行如下某动作时,自动执行触发器的脚本:
- 插入前:记录插入操作前触发。
- 修改前:记录更新操作前触发。
- 删除前:记录删除操作前触发。
- 插入后:记录插入操作后触发。
- 修改后:记录更新操作后触发。
- 删除后:记录删除操作后触发。
描述
内嵌触发器的描述。
- 编写触发器的脚本,其中对象名称、字段名称和之前创建的保持一致。
对象的内嵌触发器脚本,其实就是一段普通的TypeScript脚本,没有输入输出参数。在脚本中可以通过“对象名.字段名”,来访问当前记录的具体字段值。针对“事件触发时机”为“修改前”或者“修改后”的触发器(即触发器脚本执行条件是对象记录更新前、记录更新后),脚本代码中通过“对象名.字段名”获取到的都是当前记录的具体字段值,目前不支持获取更新前的记录值。
//test_delete_trigger import * as db from 'db'; import * as context from 'context'; let name = CNAME__Class__CST.name; let CNAME__number__CST = CNAME__Class__CST.CNAME__number__CST; let logObj = db.dynamicObject('CNAME__log__CST'); logObj.insert({ "CNAME__operator__CST": context.getUserId(), "CNAME__className__CST": name, "CNAME__classNumber__CST": CNAME__number__CST, });
关于脚本的更多说明,请参考脚本开发。
- 编辑后单击上方的,进行保存。
- 保存成功后,单击,启用脚本。
启用后在内嵌触发器列表,可查看到当前触发器状态为“ON”,表示当触发条件满足时,AstroZero会自动执行该触发器脚本。图7 启用触发器
- 验证触发器。
- 在对象“CNAME__Class__CST”配置页面,单击“布局”页签,在“Class Records”后单击。
“对象名 Records”显示对象数据的记录列表。预览该页面可增、删、改、查对象数据。
- 在布局的预览页面,单击“添加”,新增并保存,增加数据,为下一步删除数据做准备。
图8 如何新增数据
- 单击数据所在列的“删除”,删除数据。
图9 删除数据
- 在对象“CNAME__log__CST”配置页面,单击“布局”页签,在“log Records”后单击。
图10 预览Records页面
查看到对象“CNAME__log__CST”数据列表中,已记录一条刚删除的“CNAME__Class__CST”数据,触发器生效。图11 触发器脚本新增的一条数据
- 在对象“CNAME__Class__CST”配置页面,单击“布局”页签,在“Class Records”后单击。
- 华为云低代码平台_低代码开发平台_华为云Astro-华为云
- 使用FunctionGraph构建自己的ChatGPT_函数工作流_华为云FunctionGraph-华为云
- Astro轻应用_Astro大屏应用_分钟级构建业务大屏
- 低代码开发平台_华为云低代码_Astro Zero
- Astro轻应用_低代码开发平台Astro Zero_新手入门
- 什么是函数工作流_functiongraph是什么_函数工作流服务
- 使用SpringBoot构建HTTP函数_functiongraph_函数工作流
- Astro轻应用_低代码开发平台Astro Zero_码农防脱神器
- 函数工作流自动更新ECS证书_ECS证书自动更新_弹性云服务器
- 调用函数_函数调用方式_函数工作流 FunctionGraph-华为云