切换主题
3.3.2.11 参数使用说明
工作流中的参数用于把「会变的量」从脚本里拿出来。平台提供三类参数:自定义参数、全局参数、启动参数。三者的作用范围与配置位置不同,混用会导致「脚本里写了变量,运行时却取不到值」。本节按类型分别说明,最后给出对比表与引用规则。
引用方式统一为 ${参数名} 脚本中引用参数时写成 ${参数名},平台在节点执行前会把占位符替换为实际值。参数名区分大小写,且不带花括号时不会被替换。 |
自定义参数
作用:定义在单个节点上的参数,只对该节点的脚本生效。适合把节点内的常量外置,例如输出路径、业务日期偏移量、过滤阈值。
配置位置:工作流画布 → 双击节点 → 「当前节点设置」面板 → 滚动到底部「自定义参数」→ 点击「添加」。
每行参数包含四个元素:
| 元素 | 是否必填 | 说明 |
|---|---|---|
| 参数名(prop) | 是 | 脚本中引用的名称,填写后以 ${名称} 使用,例如 c1 |
| 方向(IN / OUT) | 是 | IN 表示由外部传入;OUT 表示由本节点向下游输出 |
| 类型 | 是 | 取值类型,可选 VARCHAR、INTEGER、LONG、FLOAT、DOUBLE、DATE、TIME、BOOLEAN |
| 参数值(value) | 否 | 参数的默认值;留空时需要在启动参数中赋值 |
左右滑动查看完整表格
填写完成后点击面板底部的「确定」,节点回到画布,参数随工作流一起保存。运行时,平台把该节点实际生效的参数值替换进脚本,在任务实例日志的「Initialize shell task params」中可以看到localParams 的完整内容,包含 prop、direct、type、value 四项。
使用示例:在节点中配置一条参数,参数名为 c1、方向 IN、类型 VARCHAR、参数值 node_val;脚本写为 `echo P4=${c1}`。运行后,日志中「Final Script Content」显示该行已被替换为 `echo P4=node_val`,脚本输出即 `P4=node_val`。
适用场景:同一段脚本被多个节点复用但常量不同;需要把环境相关的值(路径、阈值)与脚本分离;需要在任务实例日志中直接看出本次运行用了什么参数值。
OUT 参数向下游传递 把方向设为 OUT 时,该参数由本节点产生并写入工作流的参数池,下游节点可以引用同名参数。上游节点的 OUT 参数需要在本节点脚本中实际输出,下游节点才能取到值。配置下游节点时,请先确认上游节点已输出该参数,再在脚本中以 ${参数名} 引用。 |
全局参数
作用:定义在工作流级别的参数,工作流内所有节点都可以引用。适合多个节点共用的常量,例如业务日期基准、数据仓库库名、公共过滤条件。
配置位置:工作流画布 → 右上角「保存」→「基本信息」窗口 → 「全局参数」→ 点击「添加」,逐行填写键与值。
全局参数只有两个元素:键与值,没有方向与类型的选择。键名即脚本中的引用名。
使用示例:在「全局参数」中添加一条,键为 g1、值为 global_val;节点脚本写为 `echo P3=${g1}`。运行后日志中该行被替换为 `echo P3=global_val`,脚本输出 `P3=global_val`。
与自定义参数的区别:全局参数定义一次、工作流内处处可用,修改时只需改一处;自定义参数依附于具体节点,适合节点私有的配置。两者同名时,以节点级设置为准。
启动参数
作用:在每次运行前指定本次运行使用的参数值,用于同一工作流在不同批次、不同日期下传入不同取值,而不必修改工作流本身。
配置位置:工作流定义列表 → 「运行」→「启动前请先设置参数」窗口 → 「启动参数」→ 点击「添加」。
启动参数每行包含四个元素:键、方向(IN / OUT)、类型、值,与自定义参数的字段结构一致。
启动参数只作用于本次运行,不改变工作流本身的配置。下次运行若不填写,则回到工作流中定义的值。
启动参数需要与已定义的参数名对应 启动参数填入的键,必须与工作流中已存在的参数名一致(全局参数的键,或节点自定义参数的参数名),该值才会替换进脚本。若工作流中没有定义同名参数,脚本里的 ${键名} 不会被替换,运行时该变量为空。基于这一点:脚本中出现的新变量,先在节点「自定义参数」或工作流「全局参数」中定义,再在运行窗口的「启动参数」中按需覆盖取值。 |
使用示例:工作流中已定义全局参数 g1,日常取值为 global_val。某次运行需要临时改为指定值,在「启动参数」中添加键 g1、方向 IN、类型 VARCHAR、值 run_once_val,本次运行即以 run_once_val 执行,工作流中的全局参数保持不变。
三类参数对比与内置时间变量
| 对比项 | 自定义参数 | 全局参数 | 启动参数 |
|---|---|---|---|
| 作用范围 | 单个节点 | 整个工作流 | 本次运行 |
| 配置位置 | 节点设置 → 自定义参数 | 保存 → 基本信息 → 全局参数 | 运行 → 启动前请先设置参数 |
| 字段结构 | 参数名 / 方向 / 类型 / 值 | 键 / 值 | 键 / 方向 / 类型 / 值 |
| 是否影响后续运行 | 是,随工作流保存 | 是,随工作流保存 | 否,仅本次运行生效 |
| 典型用途 | 节点私有常量、向下游输出参数 | 多节点共用常量 | 临时覆盖某次运行的取值 |
| 脚本引用写法 | ${参数名} | ${键名} | ${键名} |
左右滑动查看完整表格
除自定义参数外,脚本中还可以直接使用平台内置的时间变量,写法为 `$[格式]`,平台在运行前按当前运行日期替换。常用的格式如下:
| 写法 | 替换结果示例 | 说明 |
|---|---|---|
| $[yyyyMMdd] | 20261109 | 运行日期,常用于按天分区的路径与分区字段 |
| $[yyyy-MM-dd] | 2026-11-09 | 带分隔符的日期,适合作为查询条件 |
| $[yyyyMMddHHmmss] | 20261109153000 | 精确到秒的时间戳,适合作为文件名的唯一后缀 |
左右滑动查看完整表格
区分 ${} 与 $[] ${参数名} 取的是参数值(自定义、全局或启动参数),$[格式] 取的是运行时间。两者都只在节点执行前替换一次,脚本运行过程中不会随时间变化。 |