条件分支节点
根据业务数据条件决定审批流向,实现分支路由。
概念说明
本文档是 审批流 概念的具体配置说明。建议先阅读审批流概念,了解整体架构。
概述
「条件分支节点」(NodeType 为 ApproveCondition)是审批流中的条件判断环节。它在流程执行时读取当前业务数据的指定字段,按配置的条件计算是否命中,命中才继续向下流转,否则该分支不通过。
条件分支节点自身不需要人工处理,属于自动计算节点。它没有通知与接口配置,核心配置只有一个「条件类型」及对应的条件内容。
配置项
| 配置项 | 必填 | 说明 |
|---|---|---|
| 条件类型 | 是 | 选择「实体数据条件」或「实体数据条件(旧版)」 |
| 条件内容 | 是 | 按条件类型以不同方式配置,见下 |
实体数据条件(推荐)
条件类型选择「实体数据条件」后,通过可视化条件编辑器配置字段、运算符与取值,支持 AND / OR 组合。取值可引用数据字段。
实体数据条件(旧版)
条件类型选择「实体数据条件(旧版)」后,点击「编辑发起条件」在弹窗中通过拖拽方式配置条件。旧版条件已不再被引擎支持执行,界面会给出迁移提示,点击「一键迁移」可将旧版条件转换为新版条件并自动切换条件类型。
旧版条件需迁移
旧版条件通过拖拽方式配置,新版引擎在运行时不再支持旧版条件,请迁移为「实体数据条件」。迁移后即可正常保存与运行。
下一步
属性明细
以下内容面向技术实现与知识库检索,说明节点属性的属性名、类型、含义与存储格式。节点属性存储在流程图版本 LogicGraphical 的 data.meta 字典中,所有值均为字符串。
节点属性表
| 属性名 | 类型 | 含义 | 取值/存储值 |
|---|---|---|---|
type | string | 节点类型 | 固定为 ApproveCondition |
ConditionType | string | 条件类型 | "1"=实体数据条件,"0"=实体数据条件(旧版) |
DynamicCondition | string(JSON) | 新版条件的过滤条件 | DynamicFilter 的 JSON 字符串 |
Condition | string(JSON) | 旧版条件的组件配置 | WidgetItem[] 的 JSON 字符串 |
节点默认值:ConditionType 为 "1",Condition 与 DynamicCondition 为空字符串。
存储示例
{
"shape": "node",
"id": "node-condition-1",
"data": {
"meta": {
"type": "ApproveCondition",
"ConditionType": "1",
"Condition": "",
"DynamicCondition": "{\"ConditionType\":0,\"Children\":[{\"Field\":\"amount\",\"Operator\":\"gt\",\"Value\":\"10000\"}]}"
}
}
}
引擎行为
| 阶段 | 行为 |
|---|---|
| 校验 | 仅支持 ConditionType 为 "1":校验 DynamicCondition 的过滤条件合法(字段与运算符不可为空);"0" 旧版条件在运行时报错「旧版条件不再支持」 |
| 构建 | 解析 DynamicCondition 为 DynamicFilter,从业务数据中取出涉及字段并计算是否命中;命中则继续下一个节点 |
| 分支 | 条件节点的下游可连接多个分支,命中条件的分支继续执行;全部未命中时流程无法继续并提示「未满足审批条件」 |
| 通知 / 执行 | 条件节点不产生人工待办,无需通知与执行处理 |
流程结构约束
- 同一节点的下游不能同时存在审批节点与条件节点;
- 单个节点下游不能存在多个审批节点;
- 条件节点的下游需要能回到结束节点,否则流程无法结束。