最新历史版本 :內建參數 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

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