APPCUBE-使用校验器和触发器:为对象配置内嵌触发器
为对象配置内嵌触发器
AppCube平台支持用户给对象增加内嵌触发器,实现在增/删/改对象的记录数据时,自动执行内嵌触发器脚本(该脚本由用户自定义,其实就是一段普通的TypeScript脚本,没有输入输出参数)。比如在对象记录插入前、记录插入后、记录更新前、记录更新后、记录删除前或者记录删除后自动执行内嵌触发器脚本。
下面以之前创建的对象“CNAME__Class__CST”为例。创建一个记录删除后的触发器,实现在删除一条“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 New Trigger参数说明 参数名称
参数说明
标签
内嵌触发器在用户界面展示的名称。
名称
内嵌触发器的名称,单击后默认自动生成,与“标签”值保持一致。
事件触发时机
内嵌触发器在什么时候生效,可直接在下拉框中选择。即在系统执行如下某动作时,自动执行触发器的脚本:
- 插入前:记录插入操作前触发。
- 修改前:记录更新操作前触发。
- 删除前:记录删除操作前触发。
- 插入后:记录插入操作后触发。
- 修改后:记录更新操作后触发。
- 删除后:记录删除操作后触发。
描述
关于内嵌触发器的描述,不超过255个字节。
- 编写触发器的脚本,其中对象名称、字段名称和之前创建的保持一致。
对象的内嵌触发器脚本,其实就是一段普通的TypeScript脚本,没有输入输出参数。在脚本中可以通过“对象名.字段名”来访问当前记录的具体字段值。针对“事件触发时机”为“修改前”或者“修改后”的触发器(即触发器脚本执行条件是对象记录更新前、记录更新后),脚本代码中通过“对象名.字段名”获取到的都是当前记录的具体字段值,目前不支持获取更新前的记录值。
//test_delete_triggerimport * 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”,表示当触发条件满足时,AppCube会自动执行该触发器脚本。图7 启用触发器
- 验证触发器。
- 在对象“CNAME__Class__CST”配置页面,单击“布局”页签,在“Class Records”后单击。
“对象名 Records”显示对象数据的记录列表。预览该页面可增、删、改、查对象数据。
- 在布局的预览页面,单击“添加”,新增并保存,增加数据,为下一步删除数据做准备。
图8 如何新增数据
- 单击数据所在列的“删除”,删除数据。
- 在对象“CNAME__log__CST”配置页面,单击“布局”页签,在“log Records”后单击。
图9 预览Records页面
查看到对象“CNAME__log__CST”数据列表中已记录一条刚删除的“CNAME__Class__CST”数据。触发器生效。图10 触发器脚本新增的一条数据
- 在对象“CNAME__Class__CST”配置页面,单击“布局”页签,在“Class Records”后单击。
- 什么是函数工作流_functiongraph是什么_函数工作流服务
- 使用SpringBoot构建HTTP函数_functiongraph_函数工作流
- 函数工作流自动更新ECS证书_ECS证书自动更新_弹性云服务器
- 调用函数_函数调用方式_函数工作流 FunctionGraph-华为云
- 使用FunctionGraph构建自己的ChatGPT_函数工作流_华为云FunctionGraph-华为云
- 数据转发至函数工作流_数据处理_FunctionGraph处理流数据
- 数据治理中心_数据开发_数据开发示例_使用教程-华为云
- 什么是函数工作流_函数托管计算服务_函数工作流 FunctionGraph-华为云
- 函数流管理_编排无服务器_函数工作流 FunctionGraph-华为云
- 容器镜像服务SWR公网访问_华为云SWR_容器镜像服务公网访问