历史版本20 :內建參數 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本说明

FineDataLink 版本功能变动
1.7增加内置参数:${cyctime}、${workname.opresult}、${jobname.opresult}
4.0.3

1)增加内置参数:${prepose.successInfo}、${prepose.failedInfo}

2)${workname.opresult}内置参数输出的三个值中,fail 改成了 error

3)${jobname.opresult}内置参数,新增输出值 skipped

4.0.3.1
新增参数:${loopTimes}
4.1.0新增参数:${workname.jobname.opresult}、${workname}
4.1.2优化内置参数 ${cyctime} 的取值逻辑
4.1.8.3内置参数类型由默认的文本改为Date、int等,详情参见本文1.3 节。

1.2 应用场景

FDL 提供了一些内置参数,这些参数无需定义即可直接调用。

1.3 功能简介

目前可以使用的内置参数如下:

内置参数
生效范围用法定义参数类型
${cyctime}当前任务内直接引用

${cyctime} 为 ETL 任务在 调度配置 中设置的每次运行的时间节点

格式为yyyy-mm-dd hh:mm:ss,输出的实际值格式为:2021-09-09 20:45:50,取值精确到时分秒

这个时间是任务进入运行队列的时间,并非实际运行的时间,实际运行的时间比进入运行队列的时间要晚一些

当需要使用任务运行的时间做一些操作时,就可以引用内置的 ${cyctime} 参数,例如:

某个任务 30 天运行一次,那每次只需更新运行时间节点( ${cyctime})前 30 天的数据就可以了

Date
${workname.opresult}所有任务需选择任务

指定任务的最近一次运行结果; 示例:${任务1.opresult}

可以输出三个值:

  • success:任务运行成功

  • error:任务运行报错(4.0.3 版本之前,该值为 fail

  • invalid:任务中止运行(异常任务,一般是任务运行时关闭了FineDataLink,启动后会将状态置为invalid)

这个参数一般用于设置 条件分支 节点的判断条件

String
${jobname.opresult}当前任务内需选择节点
当前任务-指定节点的最近一次运行结果; 示例:${数据同步.opresult}

可以输出三个值:

  • success:节点运行成功

  • fail:节点运行失败

  • skipped:节点跳过执行(4.0.3 版本新增

String
${prepose.successInfo}当前任务内直接引用
步骤流中,该节点上游节点中,所有执行成功的节点名称(数组字符串)

举例:[[SQL脚本],[数据转换]]

String
${prepose.failedInfo}当前任务内直接引用
步骤流中,该节点上游节点中,所有执行失败的节点名称(数组字符串)

举例:[[SQL脚本],[数据转换]]

String
${loopTimes}循环容器内直接引用容器内当前循环次数,初次为 1 ,后续每次循环递增加 1int
${workname.jobname.opresult}有管理权限任务的节点(除当前任务,当前任务节点还是现有参数jobname.opresult)需选择节点+任务

指定任务(非当前任务)-指定节点的最近一次运行结果; 示例:${任务1.数据同步.opresult}

可以输出三个值:

  • success:节点运行成功

  • fail:节点运行失败

  • skipped:节点跳过执行

String
${workname}当前任务直接引用当前任务名称String

2. ${cyctime}——调度配置任务运行时间编辑

2.1 取值逻辑说明

  • 如果实例是由「定时调度」触发生成,${cyctime} 值为每次调度开始的时间。

  • 如果实例是用户手动触发\事件调度触发生成,或 重试 时未指定业务日期,则 ${cyctime} 的时间值为 实例开始构建时间

  • 如果实例是用户重试实例触发生成,若指定了业务日期,则 ${cyctime} 的时间值为用户指定的时间。

${cyctime} 的格式为yyyy-mm-dd hh:mm:ss,输出的实际值格式为:2021-09-09 20:45:50,取值精确到时分秒。

2.2 示例

示例:实例是由「定时调度」触发生成。

使用内置参数 ${cyctime} ,实现每次运行任务时,只同步运行时间点前 31 天的数据。

1)新建定时任务,拖入一个数据同步」节点。

2)如下图设置节点的数据来源,其中 SQL 语句的作用是:从表「出库临时表」中取出 前 31 天的数据。

SQL 语句如下:

SELECT * FROM `demo1`.`出库临时表` 
where 出库日期>DATE_SUB('${cyctime}',interval 31 day)

63.png

点击「数据预览」,可看到取出的是系统当前时间前 31 天的数据。如下图所示:

注:点击「数据预览」时 cyctime 的默认值为系统的当前时间;而当任务运行时 cyctime 的值为任务调度执行的时间,所以数据预览的数据与实际运行写入到数据库的数据可能不一致。

1698128685374844.png

3)后续步骤中用户根据实际情况设置「数据去向」、执行频率即可。数据同步节点的使用示例可参见:数据同步-数据库表

3. ${workname.opresult}——条件分支节点判断编辑

内置参数 ${workname.opresult} 一般用于设置 条件分支 节点的判断条件。

示例:「数据复制和分流」定时任务执行成功后再执行「任务CC」。4.0.30 及之后版本,该场景可用 事件调度 实现

1)任务CC」中是一个数据同步节点,实现跨库同步。如下图所示:

65.png

2)现希望数据复制和分流定时任务执行成功后再执行任务CC」,使用内置参数 ${workname.opresult} 实现。

数据同步节点前拖入条件分支节点,条件分支节点中判断条件设置为:${数据复制和分流.opresult}等于success

66.png

需注意,4.1.0 及之后版本,条件分支节点中使用该参数时,需要选择任务。如下图所示:

1698129832806472.gif

4.1.0 之前版本,条件分支节点中使用该参数时,参数栏直接填「数据复制和分流.opresult」然后回车,最右侧文本框填「success」。

4. ${jobname.opresult}——当前任务指定节点运行结果编辑

注:该参数使用时,格式为:${上游节点名称.opresult}

1)「消息通知」节点消息内容修改为:${数据同步.opresult}。如下图所示:

57.png

2)「数据同步」节点执行成功后,企业微信群消息返回「success」,如下图所示:

15.png

5. ${prepose.successInfo}——上游运行成功节点名称编辑

前期准备:参考 连线执行判断 文档中的 3.1、3.2、3.3.2 节内容。

1)「消息通知」节点消息内容修改为:${prepose.successInfo}。如下图所示:

16.png

2)任务执行后,企业微信群消息如下图所示:

消息通知内容为:「消息通知」上游节点中,所有执行成功的节点名称「销量表抽取数据」。

17.png

6. ${prepose.failedInfo}——上游运行失败节点名称编辑

1)参考本文第五章示例,将「消息通知」节点消息内容修改为:${prepose.failedInfo}。如下图所示:

18.png

2)任务执行后,企业微信群消息如下图所示:

消息通知内容为:「消息通知」上游节点中,所有执行失败的节点名称「salesum」。

19.png

7. ${loopTimes}——循环容器当前循环次数编辑

前期准备:参考 循环容器节点 文档

该在循环容器内部生效,容器内当前循环次数,初次为 1 ,后续每次循环递增加。

1)在「循环容器」节点内拖入「消息通知」节点。设置界面如下图所示:

20.png

2)任务执行后,返回循环次数,如下图所示:

1654140060139914.png

8. ${workname}-当前任务名称编辑

当前任务名称。

示例:「消息通知」节点中使用该参数,通知任务执行成功。

1)任务测试内置参数中,存在一个数据同步节点和一个消息通知节点。

2)消息通知节点中,设置界面如下图所示:

70.png

3)任务执行成功后,通知内容如下图所示:

1698199018162358.png

9. ${workname.jobname.opresult}-非当前任务(指定任务)节点运行结果编辑

指定任务非当前任务-指定节点的最近一次运行结果; 示例:${任务1.数据同步.opresult}

注:若用户希望获取当前任务中的节点,建议使用${jobname.opresult}

示例:「01数据同步」任务中的数据同步节点执行成功后,再执行「任务2」中的数据同步节点。

1)任务2」中是一个「数据同步」节点,实现跨库同步。如下图所示:

19.png

2)现希望01数据同步任务中的数据同步节点执行成功后,再执行任务2中的数据同步节点。

在「数据同步」节点前拖入「条件分支」节点,「条件分支」节点中判断条件设置如下所示:

1698373805338091.gif