Skip to main content

对象触发器

对象触发器在实体对象的数据发生新增、修改、删除时,自动执行一段已编排的流程。

概述​

对象触发器挂在实体对象上,监听该对象的数据变化,并按配置好的画布流程自动执行后续动作,例如更新关联数据、修改字段值、发送消息通知等。

入口:开发中心 → 应用 → 实体对象详情 → 触发器。一个触发器只服务一个实体对象,触发对象在创建后不可修改。

触发器支持的能力:

  • 选择触发类型:数据新增时 / 数据修改时 / 数据删除时,可多选组合。
  • 为「数据修改时」配置触发条件,只有满足条件的修改才触发。
  • 使用画布编排触发后要执行的动作,可用节点见 触发器组件与运行机制。
  • 查看最近执行结果与逐步执行日志。
异步执行

触发器为异步执行:数据变更落库后由后台消费执行,存在一定延迟,实际执行结果请以「执行日志」为准。触发链路存在跳数上限与熔断保护,用于防止级联循环与高频风暴。

配置项​

配置项说明
名称触发器显示名称,必填
描述触发器用途说明,可选
触发对象该触发器监听的实体对象,创建后不可修改
触发类型触发时机,可多选:数据新增时 / 数据修改时 / 数据删除时
触发条件仅对「数据修改时」生效,配置哪些字段变化才触发
编排流程触发后要执行的流程画布
发布状态未发布 / 已发布,只有已发布的触发器才会执行

触发器列表​

列表展示当前实体对象下的全部触发器:

列说明
名称点击可进入该触发器的编排页
触发类型以标签展示,未配置时显示「未配置」
上次执行时间最近一次真实执行的时间,从未执行为「未执行」
上次执行结果成功 / 失败标签,从未执行为「未执行」
上次执行耗时最近一次执行的耗时(秒)
状态已发布 / 未发布
操作查看详情、执行日志、编辑、删除

可执行的操作:

操作说明
新增触发器填写名称、描述后创建,创建成功后自动打开该触发器的编排页
编辑修改名称与描述(触发类型与条件在编排页的「触发条件」弹窗中配置)
查看详情以抽屉展示触发器全部属性与已配置的触发条件
执行日志打开执行日志抽屉,按触发器查看执行记录
删除物理删除该触发器及其全部编排版本与执行日志,不可恢复

支持的对象范围​

普通实体对象均可开启触发器。system 开头的系统对象默认不支持,仅白名单内(system.userinformation)允许开启,其余系统对象进入触发器页签时显示不支持提示。

下一步​

触发器属性明细​

以下内容面向技术实现与 AI 检索,逐个说明触发器属性的类型、含义与存储。

触发器属性表​

属性名类型含义取值/存储值
_idstring(GUID)触发器主键例:2b7d1f9a-...
AppIdstring(GUID)所属应用,创建时取自触发对象的所属应用应用 _id
MetaObjectIdstring(GUID)触发对象(实体对象)Id,创建后不可修改实体对象 _id
Namestring触发器名称,必填显示名称
Descriptionstring触发器描述纯文本,可为空
TriggerTypeTriggerTypeEnum触发类型(Flags,可组合)见下方枚举表
TriggerConditionstring触发条件配置 JSON,仅「数据修改时」生效TriggerConditionConfig 序列化串,可为 null
Versionstring(GUID)当前发布版本 IdMetaFlowVersion._id,未发布时指向默认版本
StatusPublishStatusEnum发布状态UnPublish=0 / Published=1
LastExecuteTimedatetime?最近一次真实执行时间(UTC)熔断跳过的执行不计入
LastExecuteStatusExecuteStatusEnum?最近一次执行结果Success=1 / Failure=2,未执行为 null
LastConsumptionSecondsdouble?最近一次执行耗时(秒)浮点秒数
Customizedbool是否被租户自定义过非开发租户修改内置触发器后为 true
CustomCreatedbool是否由租户自定义创建客户租户新建时为 true

通用实体属性​

触发器继承自 AppEntityBase,同时具备以下通用属性:

属性名类型含义
IsDeletedbool是否已删除(逻辑删除)
CreatedBy / CreatedTimestring / datetime创建人 / 创建时间
ModifiedBy / ModifiedTimestring / datetime修改人 / 修改时间
Organizationstring(GUID)所属组织
WorkflowDataIdstring工作流数据 Id
ApprovalStatusstring审批状态
Sharedstring数据共享

存储示例​

触发器数据存储在数据表 system_metatrigger 中:

{
"_id": "2b7d1f9a-6c34-4c8e-9a2b-1f0e5d7c3a91",
"AppId": "9f1c0b2e-2d3a-4e6f-9c11-0f7a5b8d2e10",
"MetaObjectId": "6a2f5c81-0b47-4d19-8e33-9c4b7a1d2f60",
"Name": "订单状态变更后同步",
"Description": "订单状态变为已提交时更新关联数据",
"TriggerType": 2,
"TriggerCondition": "{\"Relation\":1,\"Items\":[{\"FieldCode\":\"status\",\"Type\":1,\"BeforeValue\":\"draft\",\"AfterValue\":\"submitted\"}]}",
"Version": "c3d9a4b2-5e18-4f76-b0aa-2d6c8e1f4b73",
"Status": 1,
"LastExecuteTime": "2026-03-11T07:21:45",
"LastExecuteStatus": 1,
"LastConsumptionSeconds": 0.42,
"Customized": false,
"CustomCreated": true,
"IsDeleted": false,
"CreatedBy": "admin",
"CreatedTime": "2026-03-01T09:12:30"
}

相关接口​

接口说明
POST /api/MetaTrigger/GetList分页获取触发器列表(BizTable 契约,通常按 metaobjectid 过滤)
POST /api/MetaTrigger/Create新建触发器
POST /api/MetaTrigger/Edit编辑触发器(名称、描述、触发类型、触发条件)
GET /api/MetaTrigger/Get获取触发器详情
GET /api/MetaTrigger/GetWithVersions获取触发器及其全部编排版本
POST /api/MetaTrigger/SaveAndPublish保存并发布当前编排画布
POST /api/MetaTrigger/Cancel取消发布
POST /api/MetaTrigger/Delete删除触发器(连同版本与执行日志)
POST /api/MetaTrigger/GetRunLogList分页获取执行日志(按 metatriggerid 过滤)