跳到主要内容

事件处理

数据模型的「事件处理」功能相当于数据库触发器(Trigger)能力,可以基于数据的增删改查操作,自动触发审批流程,实现业务流程的自动化和规范化管理。

审批流 ≠ 只能做审批

虽然名为"审批流",但它实际上是一个完整的业务流程编排平台,可以:

  • 审批场景:订单审批、员工入职审批等需要人工决策的场景
  • 自动化场景:字段自动拼接、数据联动更新、自动发送通知等无需人工干预的场景
  • 混合场景:先自动处理数据,再提交审批

本质:事件处理 + 审批流 = 数据库触发器 + 工作流引擎

核心特性

特性说明价值
自动触发数据变化时自动触发流程减少手动操作,提升效率
条件判断支持前置条件表达式灵活控制触发时机
流程集成无缝对接审批流能力快速实现业务自动化
多种时机支持 6 种触发时机覆盖完整业务场景
资源调用审批流中可调用云函数、数据库等实现复杂业务逻辑
前置条件

使用事件处理功能前,请确保:

  • 已开通云开发企业版或以上套餐(审批流功能要求)
  • 已创建数据模型和审批流程
  • 了解审批流基本概念,参考 审批流使用指引

触发时机

「事件处理」支持 6 种数据操作的触发时机,可以根据业务需求灵活选择:

触发时机触发场景适用案例
新建后创建单条记录后触发新订单审批、字段自动计算、自动生成编号、发送通知
更新后更新单条记录后触发字段自动拼接、数据联动更新、状态变更审批、日志记录
删除后删除单条记录后触发数据删除审批、级联删除关联数据、资源回收
批量新增后批量创建多条记录后触发批量导入后处理、批量初始化、批量审批
批量更新后批量更新多条记录后触发批量数据同步、批量调价审批、批量状态变更
批量删除后批量删除多条记录后触发批量清理审批、批量归档、批量下架

⚠️ 注意:触发时机在数据操作完成后执行,此时数据已写入数据库

配置步骤

第一步:创建事件处理

在数据模型的事件处理页面,点击「新建事件处理」按钮:

  1. 访问 云开发平台/数据模型
  2. 选择目标数据模型
  3. 进入「事件处理」标签页
  4. 点击「新建事件处理」按钮

第二步:配置前置条件表达式

「前置条件表达式」用于判断是否需要执行该事件处理,如都需要触发,则无需配置表达式

  • 返回值要求:必须返回布尔值(truefalse
  • 返回 true:满足条件,触发审批流
  • 返回 false:不满足条件,跳过执行

第三步:选择流程设置入参

「流程入参」用于传递数据到审批流程中,审批流程可以根据这些数据进行审批决策和展示。前往 云开发平台/审批流 创建审批流

审批流的能力边界

审批流不仅仅是简单的审批功能,它是一个完整的业务流程编排平台,支持:

  • 审批决策:多级审批、条件审批、会签/或签等
  • 业务逻辑:调用云函数执行复杂计算、数据处理
  • 数据操作:读写数据库、更新数据模型
  • 外部集成:调用第三方 API、发送通知消息
  • 流程控制:条件分支、循环、并行执行等

这意味着事件处理触发的审批流,可以实现从简单审批到复杂业务自动化的各种场景。

入参选项

入参选项说明使用场景
新增后值传递当前数据记录的所有字段审批流需要查看和处理完整的数据信息
不传递任何数据审批流不需要数据,仅作为通知或简单审批

使用示例

示例 1:订单金额审批

业务场景:订单金额 amount 超过 5000 元时,自动触发审批流程

配置方案

配置项配置值
触发时机新建后
前置条件表达式#amount > 5000
审批流程大额订单审批流程
流程入参新增后值

效果

  • 创建金额 ≤ 5000 的订单:不触发审批,直接创建成功
  • 创建金额 > 5000 的订单:自动触发审批流,等待审批完成

示例 2:订单状态变更审批

业务场景:订单状态从"待支付"变更为"已完成"时,触发审批流程

配置方案

配置项配置值
触发时机更新后
前置条件表达式oldData.status === '待支付' && data.status === '已完成'
审批流程订单完成审批流程
流程入参新增后值

效果

  • 只有当订单状态从"待支付"变更为"已完成"时才触发审批
  • 其他状态变更不触发审批

示例 3:字段自动拼接(自动化场景)

业务场景:字段C(文本)变动时,自动将字段B(自动编号)和字段C用破折号拼接,并更新到字段A

配置方案

配置项配置值
触发时机更新后
前置条件表达式
审批流程字段自动拼接流程
流程入参新增后值

审批流配置(无需审批节点,直接调用数据模型):

  1. 流程起始节点:接收事件处理传入的数据
    • 输入变量为对象,选择对应的数据模型,命名为 data
  2. 表达式节点:对data进行表达式计算,命名为 newData
    • 表达式:#data.fieldB + "-" + #data.fieldC
  3. 更新记录操作节点:更新数据记录
    • 数据记录:选择 newData,选择提交入库
  4. 流程结束

效果

  • 当字段C的值发生变化时,自动触发流程
  • 流程获取当前数据记录通过表达式计算出字段A的值,并更新到数据记录
  • 无需人工审批,完全自动化执行
审批流用于自动化

此示例展示了审批流不仅用于审批场景,也可用于数据自动化处理

  • 可以直接调用数据模型进行 CRUD 操作
  • 可以调用云函数执行复杂逻辑
  • 可以调用第三方 API 实现系统集成
  • 整个流程无需审批节点,即时自动执行