反馈已提交

网络繁忙

内置参数

  • 文档创建者:Wendy123456
  • 历史版本:17
  • 最近更新:Roxy 于 2024-02-22
  • 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} 的取值逻辑

    1.2 应用场景

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

    1.3 功能简介

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

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

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

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

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

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

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

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

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

    可以输出三个值:

    • success:任务运行成功

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

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

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

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

    可以输出三个值:

    • success:节点运行成功

    • fail:节点运行失败

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

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

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

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

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

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

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

    可以输出三个值:

    • success:节点运行成功

    • fail:节点运行失败

    • skipped:节点跳过执行

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

    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}

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

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

    19.png

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

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

    1698373805338091.gif






    附件列表


    主题: 数据开发
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持