实体事件
少于1分钟
1.功能概述
实体事件是实体暴露出来,解决实体到上层业务的数据交互方法,通过订阅实体的事件,允许设计师在数据生命周期的关键点插入自定义逻辑,从而实现复杂的业务需求。比如报销单付款状态是付款失败时,向出纳发送邮件。
用户在发起数据新增、更新或删除请求时,数据库将遵循一系列标准化流程来处理这些操作,同时在关键步骤或特殊时机触发事件,允许外部系统或应用程序响应这些关键时刻。
2.功能介绍
2.1预置事件
实体创建后,平台会自动暴露新增前、新增后、新增成功、更新前、更新后、更新成功、删除前、删除后、删除成功9种预置事件,预置事件仅支持在应用内部使用。
按照操作类型和时机分为以下几类:
操作前 | 操作后 | 操作成功 | |
---|---|---|---|
新增 | √ | √ | √ |
更新 | √ | √ | √ |
删除 | √ | √ | √ |
此处以用户购买【商品】下单事件为例,商品订单新增事件的操作前、操作后、操作成功适用场景如下:
1、用户下单后,可以监听【操作前】事件,为此订单生成一个流水号或者进行该【商品】的参数合法性检查。
2、用户下单后,可以监听【操作后】事件,用于扣减订单对应商品的库存,如此次扣减失败(如库存不足),则会取消本次【商品】下单操作。
3、用户下单后,可以监听【操作成功】事件,发送下单成功的通知短信,如发送短信失败(如短信平台余额不足),也不会影响本次订单的正常生成。
预置事件定义如下:
1、新增操作相关事件
- 新增操作前 (Before Create): 在数据库记录被创建之前触发,可用于数据验证或修改。
- 新增操作后 (After Create): 在数据库记录创建过程中触发,后续其余操作步骤失败可阻断新增,可用于更新关联数据。
- 新增操作成功 (Create Success): 在数据库记录成功创建后触发,后续的其余操作步骤成功与否不影响新增,可用于发送通知等场景。
2、更新操作相关事件
- 更新操作前 (Before Update): 在数据库记录被更新之前触发,可用于检查更新条件或修改数据。
- 更新操作后 (After Update): 在数据库记录更新过程中触发,后续其余操作步骤失败可阻断更新,可用于同步更新到其他系统。
- 更新操作成功 (Update Success): 在数据库记录成功更新后触发,后续的其余操作步骤成功与否不影响新增,可用于记录变更日志等场景。
3、删除操作相关事件
- 删除操作前 (Before Delete): 在数据库记录被删除之前触发,可用于检查删除条件或备份数据。
- 删除操作后 (After Delete):在数据库记录删除过程中触发,后续其余操作步骤失败可阻断删除,可用于清理相关资源等场景。
- 删除操作成功 (Delete Success): 在数据库记录成功删除后触发,后续的其余操作步骤成功与否不影响新增,可用于更新计数器等场景。
2.2自定义事件
自定义事件,是为了解决跨应用的事件通知,实体数据的新增、修改、删除,都可作为事件的触发时机。
-
事件数据:可设置事件发生时,对外输出的数据,支持主子孙实体全部字段输出,或者部分字段输出
-
触发时机:可设置事件触发时机,支持数据的新增、修改、删除做为触发事件,此处均为操作成功时触发
-
触发条件:可设置符合对应的条件事件才会触发。比如更新物料领用单时,物料领用单生效状态为已生效时,事件触发;否则不会触发
2.3实体事件使用
1、当前应用中使用事件
-
创建“事件监听”微流程,选择开始节点
-
节点配置:选择数据来源实体,选择对应事件,利用平台自动生成的预置事件,创建监听工作流
-
根据业务,配置后续操作节点
2、跨应用使用事件
-
应用A中,指定实体中创建自定义事件
-
应用B中,添加依赖应用A
-
应用B中,创建“事件监听”微流程,选择开始节点
-
节点配置:选择“应用间”,选择依赖应用A,选择对应事件,创建监听工作流
-
根据业务,配置后续操作节点