1. 概述
1.1 版本说明
| FineDataLink 版本 | 功能变动 |
|---|---|
| 3.2 | 新增节点「调用任务」,可以在当前任务中调用执行其他任务,参数传递不支持跨层级,仅可传递给子任务,不可传递给孙任务 |
| 3.7.1 | 可实现参数跨层级传递 |
| 4.1.1 | 调用任务下拉框中,屏蔽成环任务 |
| 4.2.10.3 | 「调用任务」节点更名为「调用定时任务」 |
| 4.2.14.1 | 参数传递支持跨层级,父任务中使用的参数支持传递给多级子任务使用 |
1.2 应用场景
用户希望可以在当前定时任务中调用平台内其他定时任务,被调用的任务被放到当前任务里编排,「调用定时任务」节点可满足该需求。
1.3 功能简介
注:支持可视化展示父子任务层级调用关系,用户可查看该定时任务被哪些任务调用,以及该任务调用了哪些任务。详情请参见:调用关系
1)父任务执行,会拉起子任务的执行;多个定时任务可通过「调用任务」节点,按照一定顺序执行。

2)父任务调用子任务时,支持将参数传递给子任务。

2. 设置项介绍
注:调用定时任务层级不能超过 5 层,否则会报错。

2.1 调用任务
下拉框选择其他定时任务,自身和没管理权限的任务不可选。
4.1.1 及之后版本,调用任务下拉框中,屏蔽成环任务。示例:A 调用 B,B 调用 C ,C 不能调用 A。
4.2.14.1 及之后版本,父任务开发模式下运行时调用子任务的开发模式,父任务生产模式下调用子任务的生产模式。
2.2 参数传递
2.2.1 4.2.14.1 及之后版本
1)如果勾选「将当前任务的参数传递给子任务」按钮,那么定义的任务参数、参数赋值输出的参数都可以传递给子任务、子子任务等多层级下游任务使用。

2)子任务中,父任务传递的参数支持在 SQL 语句中联想显示:

子任务中,点击「参数列表」,可看到父任务传递的赋值参数(不显示静态参数),且能修改参数调试值:
注:如果多个父任务有同名参数,此处仅显示一个参数。

3)若子任务中再拖入一个「调用定时任务」节点:
对于任务赋值参数,「调用定时任务」节点中,显示所有上游传递的和本任务内调用任务节点上游传递的赋值参数,同名合并,实际运行时按照参数优先级向下传递。
对于静态参数,仅显示所有本任务自己的静态参数。
如果多个同名参数都向下传递时,会根据优先级进行覆盖:本任务赋值参数>父任务赋值参数>父任务静态参数>本任务静态参数

2.2.2 4.2.14.1 之前的版本
默认不勾选,如果勾选了将当前任务的参数传递给子任务,那么定义的任务参数、参数赋值输出的参数都可以传递给子任务使用
勾选后,界面如下图所示:

参数赋值:仅所在的分支上游「参数赋值」输出的参数。参数赋值节点的参数可以被下游分支所有的节点使用,但是不可跨分支被其他节点使用
任务参数:所有任务参数都可以选择传递给子任务
跨层级传递逻辑说明:
1)参数类型为任务参数
在选择参数传递给子任务时,只能选择本任务内已经定义好的参数,所以在超过两个层级的场景下:子任务想要用到父父任务里的参数,需要上层的两级任务均有同名参数,且都配置了传递给子任务
示例:任务 c 配置参数 test ,值为1,如果任务 a 也想用(test 值为 1),那么任务 b 里也需要配置参数 test(值可为2),任务 c 和任务 b 中都需勾选「将当前任务的参数传递给子任务」按钮。

2)参数为参数赋值节点输出的
由于「参数赋值」设置的参数优先级大于调用任务中父任务参数,若想父父任务中参数赋值输出的参数传递给孙任务,需要在父任务中使用「参数赋值」节点获取父父任务中的参数,再传递给孙任务。如下图所示:


3. 日志说明
| 日志逻辑 | 示例 |
|---|---|
| 调用任务仅展示调用节点的执行结果,不在父任务展示详细日志 用户可跳转到被调用的任务查看具体的日志 | 在下面示例中,任务运行后,日志只显示「调用定时任务」节点是否运行成功
点击「打开子任务」链接,跳转到被调用的任务,查看具体日志
|
