一、概述
嵌套工作流的核心特点:
·可复用 :将通用的子流程(如数据校验、维度生成、模型评估)封装为独立工作流,多个主流程通过嵌套引用。
·解耦 :子工作流可由不同团队维护,主工作流仅引用其结果。
·多层嵌套 :支持最多 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 账号对子工作流无可运行及以上权限(任意一层校验未通过)。 |
详细错误信息会展示在任务运行日志顶部。
Q3:能在 For Each 节点中嵌套工作流吗?
可以。For Each 内部节点支持嵌套工作流类型。多次循环对应嵌套工作流的多次实例。详见 For Each 循环任务 的「内部循环节点配置」。
Q4:嵌套工作流的实例被删除后再查看任务详情会怎样?
跳转到嵌套工作流页面时提示:「无此页面,页面可能被删除」。
十六、相关文档
·参数传递
·For Each 循环任务
·工作流与任务的运行监控