嵌套工作流任务(Run Job)用于在当前工作流中调用另一个工作流,实现工作流的模块化复用与跨模块编排。
概述
嵌套工作流的核心特点:
可复用 :将通用的子流程(如数据校验、维度生成、模型评估)封装为独立工作流,多个主流程通过嵌套引用。
解耦 :子工作流可由不同团队维护,主工作流仅引用其结果。
多层嵌套 :支持最多 3 层 嵌套;超过会被拦截。
前提条件
已是工作流所有者或具备「管理」权限。
被嵌套的工作流(子工作流)已创建并可运行;当前用户(或 Run As 账号)对子工作流具备「运行」或「管理」权限。
操作步骤
步骤 1:创建任务
1. 在工作流画布单击 + 添加任务 。
2. 任务类型选择 嵌套工作流 。
步骤 2:配置基本信息
参数 | 说明 | 是否必填 |
任务名称 | 同工作流内唯一。 | 是 |
任务类型 | 嵌套工作流。可在下拉中切换为其他任务类型,切换后参数区会清空。 | 是 |
选择工作流 | 下拉选择被嵌套的工作流。 | 是 |
步骤 3:选择被嵌套工作流
1. 单击「选择工作流」下拉,列表展示当前用户具有「运行」或「管理」权限的工作流。
2. 支持模糊搜索与精确搜索。
3. 选中工作流后右侧出现跳转 Icon,单击跳转到所选工作流的工作流编排 Tab。
步骤 4:参数
嵌套工作流任务的参数有三类来源,按优先级(高 → 低):
优先级 | 来源 | 行为 |
1 | 当前任务参数 | 任务级新增参数。最高优先级。 |
2 | 当前工作流参数 | 当前工作流参数自动下发到任务,参数名置灰、不可改。 |
3 | 被嵌套工作流的任务参数 | 显示在任务面板,参数名不可改、参数值可改;被改后传给子工作流。 |
4 | 被嵌套工作流的工作流参数 | 同上。 |
同名冲突规则
嵌套工作流的参数同名优先级遵循 「外层 > 内层」是大原则,同层级内再按 「任务参数 > 工作流参数」 这两个独立维度共同决定:
维度一(跨层级)外层 > 内层 :当前工作流的任意参数 > 被嵌套工作流的任意参数。
维度二(同层级内)任务参数 > 工作流参数 :在每一层内部,任务级参数高于工作流级参数。
两者结合即得到上方表格的 4 级优先级:当前任务参数 (1) > 当前工作流参数 (2) > 被嵌套工作流的任务参数 (3) > 被嵌套工作流的工作流参数 (4)。
下游配置面板中出现同名时:
被嵌套工作流参数会自动置灰,参数值显示父级取值。
如果当前工作流参数与被嵌套工作流参数同名,则被嵌套参数显示提示「此参数为被嵌套的工作流参数;若与工作流参数名称一致,外层工作流参数优先级更高,其值会覆盖被嵌套工作流参数值」。
步骤 5:上游依赖、运行条件、监控指标、告警、失败与超时策略
步骤 6:保存
单击 创建任务 或 保存任务 。
运行行为
任务运行触发子工作流
嵌套工作流任务运行时,会触发对应的子工作流运行:
子工作流的运行列表中新增一条记录。
子工作流运行的「触发方式」展示为:父任务名称(点击跳转到嵌套工作流任务运行详情)。
任务运行详情
嵌套工作流任务运行详情页仅展示「运行结果」Tab:
内容 | 显示 |
运行结果 | 「请到嵌套的工作流运行详情页面查看运行结果:/嵌套工作流 ID/」(蓝色字体可跳转) |
文件路径 | 显示嵌套工作流名称,单击跳转到工作流详情页 |
工作流运行详情跳转
单任务工作流(仅一个嵌套节点) :单击工作流运行 ID 直接跳转到子工作流运行详情。
多任务工作流 :单击工作流运行进入工作流详情页,再单击嵌套节点跳转到子工作流运行详情。
参数说明
参数传递规则
场景 | 行为 |
上游传递的参数 | 在嵌套节点跟随外部工作流运行时可传递生效,作用在 run_job 节点下的每个任务中。 |
Run Job 节点单独运行 | 无法获取上游传递参数。 |
Run Job 节点的参数传递给下游 | 下游可使用其中定义的参数。 |
内外部参数同名 | 在外部运行:以外部为准;在 Run Job 内部运行:以内部为准。 |
使用限制
嵌套层级最多 3 层 。例如
Workflow A → Workflow B → Workflow C 是 3 层;再嵌套 D 即超出限制。不支持循环嵌套 (如 A 嵌套 B、B 嵌套 A)。
调度后台会逐层校验 运行账号(Run As / 当前操作人)对所引用的每一层子工作流的运行权限:任意一层缺少「可运行」及以上权限,整体置失败。
嵌套工作流任务被删除后,对应的子工作流仍存在,仅父工作流的引用关系断开。
常见问题
Q1:嵌套工作流的运行账号使用谁的身份?
调度运行:使用当前任务的 Run As 账号;该账号需要对子工作流具备运行权限。
调试运行:使用当前操作人账号。
Q2:嵌套工作流任务执行失败时,可能出现哪些错误提示?
错误提示 | 含义 |
工作流不存在 | 被嵌套的子工作流已被删除。 |
工作流内任务不存在 | 子工作流中没有任何任务。 |
{账号} 无 {工作流名称} 的运行权限 | Run As 账号对子工作流无可运行及以上权限(任意一层校验未通过)。 |
详细错误信息会展示在任务运行日志顶部。
Q4:嵌套工作流的实例被删除后再查看任务详情会怎样?
跳转到嵌套工作流页面时提示:「无此页面,页面可能被删除」。