FDL呼叫FR/BI的排程管理任務

  • 文檔創建者:Wendy123456
  • 編輯次數:6
  • 最近更新:Nikozhan 于 2025-08-08
  • 1. 概述

    1.1 應用場景

    某公司的 FineReport/FineBI 工程每月都會透過 排程管理任務 給銷售傳送月報資料。月報傳送前,需要使用 FDL 處理月報資料

    若分別設定 FDL 的定時任務和 FineReport/FineBI 工程的排程管理任務的執行頻率,需要保證 FDL 的定時任務優先執行,使用者覺得較為麻煩,希望使用 FDL 去管理 FineReport/FineBI 排程管理任務的運作。

    1.2 實現思路

    1)排程管理任務的執行頻率設定為「只執行一次」(後續透過 FDL 觸發執行)。

    2)FineReport/FineBI 工程安裝 開放平台插件 ,FDL 建立一個定時任務 A ,呼叫排程管理API來觸發排程管理任務的執行。其中,該定時任務 A 設定 事件調度 ,依賴 FDL 處理月報資料的定時任務 B 。

    3)定時任務 B 根據實際情況設定執行頻率,每次對月報資料處理後,呼叫定時任務 A 來觸發排程管理任務的執行。

    1.3 方案說明

    本文需要呼叫執行排程管理任務API,除了登入的API之外,FineReport/FineBI 所有的 WEB API API,都需要登入才能使用。詳情請參見:Web頁面整合API

    若登入認證方式為 fine_auth_token ,請參見本文第三章內容;否則,參考本文第二章內容。

    本文展示 FDL 管理 FineReport 工程中的排程管理任務步驟,管理 FineBI 中的排程管理任務步驟與之相同。

    2. 範例一:API認證模式不是fine_auth_token

    2.1 排程管理任務準備

    建立一個 排程管理 任務,需注意,執行頻率設定為「只執行一次」(後續透過 FDL 觸發執行)。如下圖所示:

    本文範例中,排程管理任務名稱為文檔測試

    2.2 FineReport 工程準備

    1)由於要呼叫排程管理任務執行APIFineReport 工程中,需要安裝開放平台插件。插件安裝方法請參見:伺服器插件管理

    2)登入 FineReport 工程,點選管理系統>開放平台>應用管理,建立應用,名稱為文檔測試,認證方式選擇AkSk直接認證。如下圖所示:

    3)點選建立應用右側的編輯按鈕,可查看應用的應用ID金鑰,後續步驟中將用到這兩個參數的值。如下圖所示:

    4.png

    4)點選權限管理,為建立應用開啟訊息管理V3排程管理管理V3的權限。如下圖所示:

    6.png

    2.3 處理月報資料定時任務準備

    1)由於 FDL 中需要處理月報資料,本文範例中,在 FDL 中設定一個定時任務,模擬處理月報資料。如下圖所示:

    7.png

    2)後續需要為該定時任務設定執行頻率,由於生產模式下才支援配置調度計劃,所以該定時任務需要發佈到「生產模式」中。

    2.4 FDL 中呼叫運作排程管理任務API

    1)FDL 中建立一個定時任務,拖入資料轉換節點,進入資料轉換節點,拖入API輸入算子。

    2)API輸入算子中,設定介面如下圖所示:

    • API API:本文範例:http://localhost:8075/webroot/decision/sp/client/api/v3/schedule/executehttp://localhost:8075/webroot/decisionFineReport 工程地址,使用者根據實際情況修改。

    • Headers 中,需要添加 client_id、secret 參數,分別為本文 2.2 節所建立應用的應用ID和金鑰。

    • Body 中內容格式為:task 為本文 2.1 節排程管理任務的名稱。

    [
        {
            "task": "排程管理的名稱"
        }
    ]

    8.png

    3)點選「資料預覽」,status 值為 200,代表API呼叫成功。如下圖所示:

    1721028629656491.png

    4)拖入參數匯出算子,匯出一個參數。本步驟無實際意義,只是為了資料轉換節點不報錯。

    10.png

    5)將定時任務發佈到「生產模式」中,設定 事件調度 ,依賴任務為本文 2.3 節的任務,代表本文 2.3 節處理月報資料的定時任務執行成功後,再執行本節任務,拉起 FineReport 工程中的排程管理任務的執行。

    1721030858356653.png

    2.5 效果查看

    運作本文 2.3 節設定的定時任務,可看到 FineReport 工程中的排程管理任務也被拉起執行。如下圖所示:

    12.png

    2.6 後續步驟

    可為本文 2.3 節中處理月報資料的定時任務 設定執行頻率

    3. 範例二:API認證模式為fine_auth_token

    3.1 排程管理任務準備

    參考本文 2.1 節內容,準備一個排程管理任務。

    3.2 FineReport 工程準備

    與本文 2.2 節不同的是:

    1)FineReport 需要再額外安開放平台-平台登入認證API插件。插件安裝方法請參見:伺服器插件管理

    2)為建立應用開放排程管理管理V3的權限即可。如下圖所示:

    14.png

    3.3 處理月報資料定時任務準備

    參考本文 2.3 節內容。

    3.4 FDL 中呼叫運作排程管理任務API

    3.4.1 獲取fine_auth_token

    1)FDL 中建立一個定時任務,拖入資料轉換節點,進入資料轉換節點,拖入「API輸入」算子。

    2)「API輸入」算子中,呼叫 前台單點登入API ,獲取 fine_auth_token 。如下圖所示:

    15.png

    各設定項說明如下:

    • API地址:http://localhost:8075/webroot/decision/login/cross/domain;其中,http://localhost:8075/webroot/decision為 FineReport 工程地址,使用者根據實際情況修改。

    • Paramas 下新增參數:

    參數是否必須備註
    fine_usernameFineReport 工程的帳號
    fine_passwordFineReport 工程的密碼
    validity

    值為-2:

    表示保持登入,保持登入就是 14 天的時間

    值為-1:

    非保持登入,時長跟隨:管理系統>系統管理>登入>登入逾時時間

    注:單點登入時保持登入,將參數 validity 的值改為 -2

    callback為空即可

    點選「資料預覽」,如下圖所示:

    16.png

    上圖中的 accessToken 就是我們需要的 fine_auth_token。

    3)傳回的請求資料,是非標準的 json 資料,無法解析出 accessToken ,需要用「Spark SQL」算子,把傳回的值設定成標準的 json 格式。如下圖所示:

    注:SQL 語句中的「API輸入」為點選生成。

    select replace(replace(responseBody,"callback(",""),")","") as a from API輸入

    17.png

    4)拖入「JSON 解析」算子,解析出 accessToken 。如下圖所示:

    18.png

    點選資料預覽」,可看到 accessToken 被解析出來。如下圖所示:

    19.png

    5)拖入參數匯出算子,將 accessToken 匯出為參數。如下圖所示:

    20.png

    3.4.2 呼叫運作排程管理任務API

    1)再拖入一個「資料轉換」節點,用遠端與上一個資料轉換節點連結起來。

    2)進入資料轉換節點,拖入API輸入算子,設定介面如下圖所示:

    • APIAPI:本文範例:http://localhost:8075/webroot/decision/sp/client/api/v3/schedule/executehttp://localhost:8075/webroot/decision為 FineReport 工程地址,使用者根據實際情況修改。

    • Authorization 中,認證類型選擇 Bearer Token,值為 3.4.1 節中的參數,本文範例中此處填寫:${token}

    • Headers 中,需要新增 client_id、secret 參數,分別為本文 3.2 節所建立應用的應用ID和金鑰。

    • Body 中內容格式為:task 為本文 3.1 節排程管理任務的名稱。

    [
        {
            "task": "排程管理的名稱"
        }
    ]

    21.png

    3)點選「資料預覽」,status 值為 200,代表API呼叫成功。如下圖所示:

    22.png

    4)拖入參數匯出算子,匯出一個參數。本步驟無實際意義,只是為了資料轉換節點不報錯。

    23.png

    5)將定時任務發佈到「生產模式」中,設定 事件調度 ,依賴任務為本文 3.3 節的任務,代表本文 3.3 節處理月報資料的定時任務執行成功後,再執行本節任務,拉起 FineReport 工程中的排程管理任務的執行。

    24.png

    3.5 後續步驟

    1)效果查看請參見本文 2.5 節內容。

    2)可為本文 3.3 節中處理月報資料的定時任務 設定執行頻率





    附件列表


    主題: 最佳實踐
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    獲取幫助
    線上支援
    獲取專業技術支援,快速幫助您解決問題
    工作日9:00-12:00,13:30-17:30在线
    頁面反饋
    針對當前網頁的建議、問題反饋
    售前咨詢
    業務咨詢
    電話:0933-790886或 0989-092892
    郵箱:taiwan@fanruan.com
    頁面反饋
    *問題分類
    不能為空
    問題描述
    0/1000
    不能為空

    反馈已提交

    网络繁忙