一、引用语法
{{<scope>.<field>[.<sub_field>]}}
例如:
| 引用 | 含义 |
| {{workflow.id}} | 工作流 ID |
| {{workflow.start_time.iso_date}} | 工作流实例数据时间的 ISO 8601 日期格式 |
| {{tasks.upstream_sql.output.first_row.col_a}} | 上游 SQL 任务输出第一行 col_a 列的值 |
二、标识
| 参数 | 含义 |
| {{workflow.id}} | 工作流 ID |
| {{workflow.name}} | 工作流名称 |
| {{workflow.run_id}} | 工作流运行 ID(每次运行唯一) |
| {{workflow.repair_count}} | 第几次重跑 |
三、工作流开始时间(start_time)
开始时间为工作流运行的开始时间,UTC+0。
| 参数 | 含义 |
| {{workflow.start_time.year}} | 年份(如 2026) |
| {{workflow.start_time.month}} | 月(如 06) |
| {{workflow.start_time.day}} | 日(如 15) |
| {{workflow.start_time.hour}} | 小时 |
| {{workflow.start_time.minute}} | 分钟 |
| {{workflow.start_time.second}} | 秒 |
| {{workflow.start_time.is_weekday}} | 是否工作日(true / false) |
| {{workflow.start_time.iso_date}} | ISO 日期 YYYY-MM-DD |
| {{workflow.start_time.iso_datetime}} | ISO 日期时间 YYYY-MM-DDTHH:mm:ss |
| {{workflow.start_time.iso_weekday}} | ISO 星期几(1–7,1 表示周一) |
| {{workflow.start_time.timestamp_ms}} | 毫秒级时间戳 |
四、工作流计划调度时间(trigger.time)
计划调度时间为调度配置的下次执行时间,UTC+0。
| 参数 | 含义 |
| {{workflow.trigger.time.year}} | 年份 |
| {{workflow.trigger.time.month}} | 月 |
| {{workflow.trigger.time.day}} | 日 |
| {{workflow.trigger.time.hour}} | 小时 |
| {{workflow.trigger.time.minute}} | 分钟 |
| {{workflow.trigger.time.second}} | 秒 |
| {{workflow.trigger.time.is_weekday}} | 是否工作日 |
| {{workflow.trigger.time.iso_date}} | ISO 日期 |
| {{workflow.trigger.time.iso_datetime}} | ISO 日期时间 |
| {{workflow.trigger.time.iso_weekday}} | ISO 星期几 |
| {{workflow.trigger.time.timestamp_ms}} | 毫秒级时间戳 |
五、工作空间(Workspace)参数
| 参数 | 含义 |
| {{workspace.id}} | 工作空间 ID |
| {{workspace.url}} | 工作空间 URL |
六、当前任务
| 参数 | 含义 |
| {{task.name}} | 任务名称 |
| {{task.run_id}} | 任务运行 ID |
| {{task.execution_count}} | 当前任务运行的次数(含重试和重跑) |
| {{task.path}} | 当前 Notebook / Python File 任务引用的文件路径 |
七、上游任务(指定 task_name)
注意:「上游」必须是当前任务的直接或间接上游,且已配置依赖关系。
注意:嵌套多层工作流时,最外层上游传递的参数在最内层可以使用。
| 参数 | 含义 |
| {{tasks.<task_name>.run_id}} | 上游任务运行 ID |
| {{tasks.<task_name>.result_state}} | 运行状态:success / failed / excluded / canceled / evicted / timeout / upstream_canceled / upstream_evicted / upstream_failed |
| {{tasks.<task_name>.error_code}} | 任务错误码(成功时为空字符串) |
| {{tasks.<task_name>.execution_count}} | 上游任务运行次数 |
| {{tasks.<task_name>.path}} | 上游 Notebook 任务的文件路径 |
| {{tasks.<task_name>.values.<value_name>}} | 上游 Notebook 通过 dlcutils.jobs.taskValues.set 设置的值 |
| {{tasks.<task_name>.output.rows}} | 上游 SQL 任务的全部输出行(JSON 数组) |
| {{tasks.<task_name>.output.first_row}} | 上游 SQL 任务输出的第一行 |
| {{tasks.<task_name>.output.first_row.<column_alias>}} | 上游 SQL 输出第一行的指定列 |
| {{tasks.<task_name>.output.alert_state}} | 上游 SQL 告警任务的状态:UNKNOWN / OK / TRIGGERED |
八、For Each 循环参数(仅在 For Each 内部节点使用)
| 参数 | 含义 |
| {{loopDataArray}} | 整个循环参数数组 |
| {{loopDataCurrent}} | 本次循环的元素 |
| {{loopDataCurrent.<key>}} | 本次循环元素中指定 key 的值 |
| {{loopTimes}} | 当前循环次数(从 1 开始) |
详见 For Each 循环任务。
九、时间格式说明
所有以 UTC+0 为基准的时间字段含义:
| 字段 | 取值范围 |
| year | 4 位数字(如 2026) |
| month | 1–12 |
| day | 1–31 |
| hour | 0–23 |
| minute | 0–59 |
| second | 0–59 |
| is_weekday | true / false |
| iso_date | YYYY-MM-DD |
| iso_datetime | YYYY-MM-DDTHH:mm:ss |
| iso_weekday | 1–7(1 表示周一,7 表示周日) |
| timestamp_ms | 13 位毫秒级时间戳 |
十、1. 在工作流参数中定义、SQL/Notebook 中引用
推荐做法:在工作流参数中将系统内置参数封装成业务参数,代码中只引用业务参数。便于后续调整与日志可读性。
# 工作流参数dp_data_dt = {{workflow.start_time.iso_date}}# SQL 中引用WHERE dt = '${dp_data_dt}'# Notebook 中引用dt = dlcutils.widgets.get('dp_data_dt')
十一、2. 在 SQL output 与下游传递
# 下游任务参数task_param = {{tasks.upstream_sql.output.first_row.dt}}# 下游 SQL 中WHERE dt = '${task_param}'
十二、时区说明
·start_time / trigger.time 系列字段以 UTC+0 为基准。
·如需其他时区,请通过工作流参数显式拼接(推荐使用 ISO 字段、时区偏移)。
·「完成时间」告警按调度时区计算,详见 工作流与任务的告警。
十三、相关文档
·参数配置
·参数使用
·参数传递
·调度与触发器