一、概述
条件节点常用于:
·按时间维度触发不同业务流程(如季度末走结算流程,月末走对账流程)。
·按上游运行结果选择不同处理路径(如成功走 A 链路,失败走告警链路)。
·按外部参数动态决定执行内容。
通用配置(任务名称、上游依赖、参数、监控指标、告警、失败与超时策略)请参考 任务通用配置。
二、前提条件
·已是工作流所有者或具备「管理」权限。
·工作流中已存在或将创建用于条件结果分支的下游任务。
四、步骤 1:创建条件节点
1. 在工作流画布单击 + 添加任务 。
2. 任务类型选择 IF ELSE 。
五、步骤 2:配置条件
条件节点支持配置多组条件,每组条件关联不同的下游任务。
六、添加条件
1. 任务配置面板的 条件配置 区域单击 添加按钮 ,弹出条件配置弹窗。
2. 选择 简单模式 或 高级模式 。
3. 配置条件后单击 确定 。
七、简单模式
| 参数 | 说明 | 是否必填 |
| 参数值 1 | 输入框,支持常数和系统内置参数(如 {{workflow.start_time.iso_date}}、{{tasks.<name>.values.<key>}})。 | 是 |
| 运算符 | 单选下拉:== / != / > / < / >= / <=。 | 是 |
| 参数值 2 | 输入框,规则同参数值 1。 | 是 |
支持的运算符:
| 运算符 | 名称 | 说明 |
| == | 等于 | 字符串比较 |
| != | 不等于 | 字符串比较 |
| > | 大于 | 数值比较(浮点) |
| < | 小于 | 数值比较(浮点) |
| >= | 大于等于 | 数值比较 |
| <= | 小于等于 | 数值比较 |
注意:说明:
注意:使用 == / != 时参数值按字符串处理;使用 > / < / >= / <= 时按数值(浮点)处理。
八、高级模式
输入框中以 Python 风格表达式描述条件,最长 512 字符,例如:
{{tasks.upstream.values.month}} == 12 and {{workflow.start_time.day}} == 31
九、关联下游任务
| 参数 | 说明 | 是否必填 |
| 条件关联任务 | 多选下拉,选项为当前工作流下除当前任务外的所有任务。 | 是 |
| 条件描述 | 选填,最长 512 字符。 | 否 |
注意:关联任务不能选择条件节点的直接或间接上游,否则提交时会被拦截并提示「任务图不能包含循环依赖」。同一关联任务不能在多个条件中重复使用。
十、步骤 3:在画布连线建立条件分支
除任务配置面板外,画布上为条件节点连接下游时也会触发条件配置:
1. 从条件节点连接到下游任务。
2. 系统自动弹出条件配置弹窗,条件关联任务 默认选中刚连接的下游。
3. 完成条件配置后单击 确定 。
十一、步骤 4:管理条件列表
条件配置区域以列表展示所有已配置条件:
| 字段 | 说明 |
| 条件编号 | 系统生成 |
| 条件 | 简单模式或高级模式表达式 |
| 条件关联任务 | 关联的下游任务名称 |
| 条件描述 | 用户填写的描述 |
| 操作 | 编辑 / 删除 |
最多配置 50 条条件,超出后添加按钮置灰。
十二、步骤 5:上游依赖、参数、监控指标、告警、失败与超时策略
参考 任务通用配置。条件节点的告警支持启动、成功、失败、持续时间告警。
十三、步骤 6:保存
单击 创建任务 或 保存任务 。
注意:说明:
注意:保存任务时,对于在条件配置中关联的下游任务,如果该任务未将条件节点配置为上游,系统会自动添加上游依赖。
十五、条件节点本身
·满足条件:节点状态为「成功」,按下游任务的运行条件继续触发执行。
·不满足条件:节点状态为「成功」(条件计算正常),但 不满足条件分支下的下游节点(含间接下游)会自动置为「排除运行」状态 。
十六、下游任务运行详情
不满足条件被排除运行的任务在运行详情页展示。
当前节点因上游条件节点 "task_name"、"task_name_2" 不满足条件,自动排除运行。
十七、单独运行、重跑
条件节点支持单独运行或重跑,运行结果正常展示。条件单独运行不会触发下游执行。
十八、条件节点运行详情
条件节点运行详情页展示条件列表:
| 列 | 说明 |
| 条件编号 | 与配置时一致 |
| 条件 | 原始条件 |
| 条件解析 | 参数替换后的实际条件,例如 12 == 12 |
| 条件关联任务 | 关联任务名(点击跳转配置页) |
| 条件结果 | true / false(运行成功后展示) |
如条件节点本身失败:
条件节点运行失败,失败原因:{关键错误日志}
十九、使用限制
·单条件节点最多配置 50 条条件。
·关联任务不能选择直接或间接上游(避免循环依赖)。
·同一下游任务不能在多个条件中重复关联。
·条件高级模式表达式最长 512 字符。
20、常见问题
Q1:条件节点的上游有 SQL 任务,如何在条件中使用 SQL 输出?
通过参数引用:
{{tasks.upstream_sql.output.first_row.month}} == 12
详见 系统内置参数。
Q2:条件不满足时下游被「排除运行」,更下游的任务能继续执行吗?
·如果更下游的任务上游均被排除运行,按下游任务的「运行条件」决定。例如运行条件设为「全部完成」会触发执行;设为「全部成功」会进入「上游失败」状态。
·通常建议在分支汇聚点使用「没有失败且至少一个成功」运行条件,避免排除运行向下传播。
Q3:高级模式中支持哪些语法?
高级模式支持 Python 条件表达式语法,包括:
·比较运算符:==、!=、<、>、<=、>=
·逻辑运算符:and、or、not
·括号 () 用于分组
·Python 内置函数(如 len()、str()、int() 等)
建议尽量保持简洁,复杂逻辑可拆为多条简单条件。
21、相关文档
·参数传递
·系统内置参数
·工作流与任务的运行监控