內建參數

  • 文檔創建者:Wendy123456
  • 編輯次數:21
  • 最近更新:Nikozhan 于 2025-04-14
  • 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 節。
    4.2.4.3${workname} 在預覽資料時,會顯示實際值

    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)

    點選「資料預覽」,可看到取出的是系統當前時間前 31 天的資料。如下圖所示:

    注:點選「資料預覽」時 cyctime 的預設值為系統的當前時間;而當任務運作時 cyctime 的值為任務調度執行的時間,所以資料預覽的資料與實際運作寫入到資料庫的資料可能不一致。

    3)後續步驟中使用者根據實際情況設定「資料去向」、執行頻率即可。資料同步節點的使用範例可參見:数据同步-数据库表

    3. ${workname.opresult}——條件分支節點判斷

    內建參數 ${workname.opresult} 一般用於設定 条件分支 節點的判斷條件。

    範例:「資料複製和分流」定時任務執行成功後再執行「任務CC」。4.0.30 及之後版本,該場景可用 事件調度 實現

    1)任務CC」中是一個数据同步節點,實現跨庫同步。如下圖所示:

    2)現希望資料複製和分流定時任務執行成功後再執行任務CC」,使用內建參數 ${workname.opresult} 實現。

    資料同步節點前拖入條件分支節點,條件分支節點中判斷條件設定為:${1-Data Synchronization.opresult}等於success

    需注意,4.1.0 及之後版本,條件分支節點中使用該參數時,需要選擇任務。如下圖所示:

    1698129832806472.gif

    4.1.0 之前版本,條件分支節點中使用該參數時,參數欄直接填「資料複製和分流.opresult」然後回車,最右側正文框填「success」。

    4. ${jobname.opresult}——當前任務指定節點運作結果

    注:該參數使用時,格式為:${上游節點名稱.opresult}

    1)「訊息通知」節點訊息內容修改為:${資料同步.opresult}。如下圖所示:

    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)訊息通知節點中,設定介面如下圖所示:

    3)任務執行成功後,通知內容如下圖所示:

    1698199018162358.png

    9. ${workname.jobname.opresult}-非當前任務(指定任務)節點運作結果

    指定任務非當前任務-指定節點的最近一次運作結果; 範例:${任務1.資料同步.opresult}

    注:若使用者希望獲取當前任務中的節點,建議使用${jobname.opresult}

    範例:「01資料同步」任務中的資料同步節點執行成功後,再執行「任務2」中的資料同步節點。

    1)任務2」中是一個「数据同步」節點,實現跨庫同步。如下圖所示:

    2)現希望01資料同步任務中的資料同步節點執行成功後,再執行任務2中的資料同步節點。

    在「資料同步」節點前拖入「條件分支」節點,「條件分支」節點中判斷條件設定如下所示:

    1698373805338091.gif






    附件列表


    主題: 資料開發-定時任務
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!