4.7.1 参数与变量
工作流定义的编辑支持使用静态参数与动态变量,便于更加灵活的对任务流程进行调度。
静态参数:由用户自定义,参数值在工作流运行过程中不会发生变更;
动态变量:由任务节点的输出数据进行设置,变量值在工作流运行过程中动态变化。
静态参数
静态参数的分类
静态参数根据作用域的不同分为全局参数、工作流参数、节点参数三大类。
全局参数:可在整个项目范围内的任何工作流中引用;
工作流参数:可在整个工作流范围内的任何任务节点中引用;
节点参数:可在某一个任务节点范围内声明和引用,同时支持引用工作流参数对节点参数进行声明。
静态参数的声明
全局参数 需要在“资源中心-全局参数管理”中进行声明,支持九种数据类型:VARCHAR、INTEGER、LONG、FLOAT、DOUBLE、DATE、TIME、TIMESTAMP、BOOLEAN;
工作流参数 需要在“工作流定义-参数列表”中进行声明,支持九种数据类型:VARCHAR、INTEGER、LONG、FLOAT、DOUBLE、DATE、TIME、TIMESTAMP、BOOLEAN;
节点参数 需要在任务节点的配置栏中进行声明,支持声明节点参数的节点类型包括:SQL、PYTHON、SHELL,节点参数同样支持九种数据类型:VARCHAR、INTEGER、LONG、FLOAT、DOUBLE、DATE、TIME、TIMESTAMP、BOOLEAN;
全局参数/工作流参数/节点参数都支持用户自定义指定“常量”,同时也支持使用“系统参数/时间自定义参数”进行声明赋值。(注意:系统参数/时间自定义参数都需要通过全局参数/工作流参数/节点参数的引用才能发挥作用,不支持直接使用)
系统参数/时间自定义参数均与时间相关,可以灵活支持工作流定义的调度运行;
系统参数:${system.biz.date}、${system.biz.curdate}、${system.datetime};
时间自定义参数:采用 $[...] 格式,$[yyyyMMddHHmmss] 是可以任意分解组合的,比如:$[yyyyMMdd], $[HHmmss], $[yyyy-MM-dd] 等;
系统参数/时间自定义参数在常规运行和补数运行中发挥的作用:
系统参数/时间自定义参数 | 常规运行 | 补数运行 | 格式 |
${system.biz.date} | 运行时间的前一天 | 补数时间的前一天 | yyyyMMdd |
${system.biz.curdate} | 运行时间的当天 | 补数时间的当天 | yyyyMMdd |
${system.datetime} | 运行时间的当天 | 补数时间的当天 | yyyyMMddHHmmss |
$[yyyyMMdd] | 运行时间的当天 | 补数时间的当天 | -- |
时间自定义参数同样支持:
时间自定义参数其他用法 | 含义 |
$[add_months(yyyyMMdd,12*N)] | 后 N 年 |
$[add_months(yyyyMMdd,-12*N)] | 前 N 年 |
$[add_months(yyyyMMdd,N)] | 后 N 月 |
$[add_months(yyyyMMdd,-N)] | 前 N 月 |
$[yyyyMMdd+7*N] | 后 N 周 |
$[yyyyMMdd-7*N] | 前 N 周 |
$[yyyyMMdd+N] | 后 N 天 |
$[yyyyMMdd-N] | 前 N 天 |
$[HHmmss+N/24] | 后 N 小时 |
$[HHmmss-N/24] | 前 N 小时 |
$[HHmmss+N/24/60] | 后 N 分钟 |
$[HHmmss-N/24/60] | 前 N 分钟 |
静态参数的引用
支持引用静态参数(全局参数、工作流参数、节点参数)的节点类型包括:SQL、PYTHON、SHELL,sql语句或者脚本代码中均可以通过${参数名}方式引用静态参数;
此外SUB_PROCESSS节点的参数设置中可以通过${参数名}方式引用全局参数/工作流参数。
工作流参数的传入
手动/定时触发工作流定义的运行时,支持对工作流参数进行传参设置(如果没有设置,将以内部设置的工作流参数默认值为准);
在工作流定义中添加SUB_PROCESSS节点进行配置时,支持对子工作流内部的工作流参数进行传参设置(如果没有设置,将以内部设置的工作流参数默认值为准);
动态变量
动态变量的作用域为整个工作流,可以由工作流运行过程中某个节点的输出数据进行动态赋值,并且可在整个工作流范围内的任何任务节点中进行引用。
动态变量的声明
存在“输出”数据的节点都可以对动态变量进行声明赋值,具体包括:
SQL节点:获取数据、处理数据
DATASET节点:从数据集获取数据
DATAFLOW节点
对动态变量进行声明时需要指定变量名、输出名称与列名,工作流定义在运行过程中会默认选取该输出数据第一行的指定列赋值给变量,变量的类型将继承输出数据指定列的数据类型。
声明之后的动态变量可以在“参数列表”中进行查看。
动态变量的引用
动态变量的引用方式与静态参数相同,支持引用动态变量的节点类型包括:SQL、PYTHON、SHELL、SUB_PROCESSS:
sql语句或者脚本代码中均可以通过${变量名}方式引用动态变量
SUB_PROCESSS节点的参数设置中可以通过${变量名}方式引用动态变量
当动态变量与静态参数存在同名时,引用顺序将采用如下优先级:节点参数>动态变量>工作流参数>全局参数。
参数变量与工作流实例
工作流实例页面可以进行静态参数与动态变量的查看,展示此次运行中参数和变量在各个环节的具体赋值情况,方便调试和定位问题。