触发条件
触发条件用于限定「数据修改时」哪些字段的变化才会触发流程。
概述
触发条件在编排页顶部的「触发条件」弹窗中配置。弹窗内先勾选触发类型(可多选),再配置条件项列表。触发条件只对「数据修改时」生效:数据新增没有变更前快照,数据删除只带数据 Id,都不具备条件语义。
- 只要勾选了「数据修改时」且未配置任何条件项,则任意字段的修改都会触发。
- 触发条件与触发类型都未配置时,触发器不会被匹配执行。
触发类型
触发类型是可组合的标志位,可同时勾选多个:
| 触发类型 | 说明 |
|---|---|
| 数据新增时 | 实体对象新增数据时触发 |
| 数据修改时 | 实体对象数据被修改时触发,可 进一步配置触发条件 |
| 数据删除时 | 实体对象数据被删除时触发 |
未勾选任何类型时,列表的触发类型列显示「未配置」,且发布时会被服务端拒绝。
触发条件配置
触发条件由一组条件项与它们的组合关系组成。
| 配置项 | 说明 |
|---|---|
| 组合关系 | 满足全部条件(And)/ 满足任一条件(Or) |
| 字段 | 条件所依据的字段,可选项来自触发对象的字段列表 |
| 条件类型 | 值匹配指定值 / 值被设置 / 值被移除 / 值被修改 |
| 变更前 / 变更后 | 仅「值匹配指定值」需要填写,分别对应变更前与变更后的期望值 |
通过「添加条件」按钮新增条件项,点击条件项右侧的删除按钮移除。同一个字段可以重复出现在多个条件项中。
条件类型
| 条件类型 | 说明 |
|---|---|
| 值匹配指定值 | 变更前 / 变更后的值等于指定值;两个值都可选填,未填的一项不参与判断 |
| 值被设置 | 由空变为有值时触发 |
| 值被移除 | 由有值变为空值时触发 |
| 值被修改 | 变更前后不一致时触发(不比较具体值) |
「值被设置」「值被移除」「值被修改」三项不 需要填写值,界面会给出对应说明。
值的填写方式
「值匹配指定值」中的变更前 / 变更后的输入控件随所选字段的类型变化,值统一以字符串保存:
| 字段类型 | 输入控件 |
|---|---|
| 布尔 | 下拉选择「是 / 否」,存储为 true / false |
| 日期时间 | 日期时间选择器,存储为 YYYY-MM-DD HH:mm:ss |
| 数字 / 货币 | 数字输入框 |
| 其他类型 | 文本输入框 |
组合关系
| 组合关系 | 说明 |
|---|---|
| 满足全部条件 | 所有条件项都成立才触发 |
| 满足任一条件 | 任一条件项成立即触发 |
组合关系是单层的:整份条件共用一个关系,不支持条件项的嵌套分组。
下一步
- 触发器全局属性 - 触发类型与发布状态等全局属性
- 触发器组件与运行机制 - 条件通过后执行的编排组件
- 对象触发 器 - 返回总览
触发条件存储结构
以下内容面向技术实现与 AI 检索。触发条件以 JSON 字符串存入 MetaTrigger.TriggerCondition。
配置对象结构
| 属性名 | 类型 | 含义 | 取值/存储值 |
|---|---|---|---|
Relation | ConditionRelationEnum | 条件项之间的组合关系 | And=1 / Or=2 |
Items | TriggerFieldCondition[] | 条件项列表 | 同名字段可重复出现 |
条件项结构
| 属性名 | 类型 | 含义 | 取值/存储值 |
|---|---|---|---|
FieldCode | string | 字段编码 | 触发对象下的字段 Code |
Type | TriggerConditionTypeEnum | 条件类型 | 见下方枚举 |
BeforeValue | string | 变更前期望值,仅 ValueEquals 使用 | 字符串,可为空 |
AfterValue | string | 变更后期望值,仅 ValueEquals 使用 | 字符串,可为空 |
枚举定义
// TriggerConditionTypeEnum
ValueEquals = 1; // 值匹配指定值:变更前/后等于指定值
ValueSet = 2; // 值被设置:空 -> 有值
ValueRemoved = 3; // 值被移除:有值 -> 空
ValueModified = 4; // 值被修改:变更前后不一致
// ConditionRelationEnum
And = 1; // 满足全部条件
Or = 2; // 满足任一条件