1. 概述
1.1 版本
FineBI 版本 | JAR | 新增功能 |
---|---|---|
5.1 | 2020-08-04 | 調度週期>執行條件>自訂類判斷中可新增參數並指派 |
1.2 功能簡介
排程任務條件判斷是指在執行排程任務之前進行一次校驗判斷,如果不滿足條件就不執行或者延遲後再次校驗執行。
條件判斷包含三種型別的選擇:始終執行、公式判斷和自訂類判斷。具體說明如下所示:
始終執行:不進行條件判斷,直接執行排程任務。
公式判斷:排程任務在執行前要對當前公式內容進行判定,公式為 true 則繼續執行排程任務,如果公式為 false 則不執行或者延遲執行。延遲執行是指在「調度週期」步驟中勾選任務重啓,會在間隔一段設定的時間後再次執行排程任務,重新進行條件判斷。
自訂類判斷:執行自訂類,傳回值為 true 的時候執行排程任務。
本文將介紹公式判斷和自訂類判斷的使用方法。
2. 公式判斷
本章以 Anna 使用者為例,儀表板選擇行業應用>零售行業>產品銷售分析 ,排程管理任務執行結束後,將排程管理任務的結果以連結訊息的形式派送到 Anna 使用者的 App 中。
2.1 儀表板準備
注:使用者需要有儀表板的查看權限、業務包的使用權限才能正常預覽儀表板。
1)管理者進入數據決策系統,點選管理系統>目錄管理>行業應用>零售行業>產品銷售分析>預覽範本,生成「產品銷售分析」儀表板的連結。如下圖所示:
2)確定 URL 連結中的 IP 為實際 IP ,不能使用 localhost 代替。正確 URL 格式為:http://實際ip:埠號/webroot/decision/v5/design/report/${id}/view,URL 範例如下所示:
http://145.13.4.243:37799/webroot/decision/v5/design/report/314e48b827d745bba7af145aad903a5e/view
注:該連結會在排程管理任務「檔案處理」步驟中使用。
2.2 新增任務
點選管理系統>排程管理>新增任務,如下圖所示:
2.3 基本設定
「任務名稱」為公式判斷,新增平台使用者Anna,點選確定,如下圖所示:
2.4 排程物件
點選下一步,物件型別選擇BI範本,選擇範本行業應用>零售行業>產品銷售分析,如下圖所示:
2.5 調度週期
點選下一步,設定 , 選擇公式判斷,在下方的公式輸入框中輸入YEAR(TODAY()) = 2022,勾選如果任務中斷按以下頻率重新啟動,設定「兩次重啓間隔」為 10 分鐘,「最多嘗試重啓次數」為 2 次,如下圖所示:
其中公式的含義及任務重啓設定的含義如下表所示:
設定項 | 備註 |
---|---|
公式:YEAR(TODAY()) = 2022 | 任務執行時的年份為 2022 年才滿足條件,可以執行排程任務,否則不執行或延遲校驗執行 |
任務重啓設定項 | 如果任務執行時的年份不是 2022 年則進行任務重啓,每隔 10 分鐘重啓一次,重啓後再公式判斷,公式判斷還是不滿足則再次任務重啓,直到重啓過 2 次後,若公式判斷還是不滿足,則不執行 |
2.6 檔案處理
點選下一步,選擇使用者端通知,勾選App 通知,訊息型別選擇連結訊息,主題和內容為測試,自訂連結中輸入本文 2.1 節準備好的儀表板預覽連結,點選儲存按鈕。如下圖所示:
2.7 結果查看
Anna 使用者登入 App ,收到一條新訊息。如下圖所示:
注:App 存取 BI 工程的步驟請參見:配置伺服器存取 BI 工程
3. 自訂類判斷
自訂類判斷是指執行自訂類,傳回值為 true 的時候執行排程任務。
3.1 無參數
3.1.1 自訂類編寫
在執行排程任務時判斷今天是不是週二,如果是週二就執行,不是週二就不執行,Java 檔案名稱稱為ExecuteClass.java。代碼如下所示:
package com.fr.schedule;import java.util.Calendar;import com.fr.schedule.base.provider.ExecuteCondition;public class ExecuteClass implements ExecuteCondition {public boolean execute() {Calendar cal = Calendar.getInstance();int dow = cal.get(Calendar.DAY_OF_WEEK);//星期二的dow等於3return (dow) == 3;}}
編譯之後的 ExecuteClass.class 檔案儲存到%BI_HOME%\webapps\webroot\WEB-INF\classes\com\fr\schedule資料夾下,若無 schedule 資料夾,建立即可。
3.1.2 排程任務設定
修改本文第二章已設定的排程管理任務,在調度週期設定「執行條件」時,選擇自訂類判斷,點選右側的下拉按鈕,選擇上面儲存的 class 檔案。如下圖所示:
設定完四個步驟之後儲存即可。
3.1.3 效果查看
如果今天是週二,點選運作監視,可以看到 顯示成功,如下圖所示:
如果今天不是週二,點選快照生成:跨越,如下圖所示:
,可以看到 顯示3.2 有參數
注1:2020-08-04 及之後的 JAR,執行條件選擇自訂類判斷時,可新增參數並指派。
注2:所新增的參數名稱為字母、數字、中文的組合,參數名稱開頭不能為數字。
3.2.1 自訂類編寫
1)點選下載 Java 檔案:NewCondition.zip
執行排程任務時如果參數1的值大於 5 且參數2的值包含「ABC」則執行,代碼如下圖所示:
package com.fr.schedule;import com.fr.general.GeneralUtils;import com.fr.log.FineLoggerFactory;import com.fr.schedule.base.provider.impl.AbstractParameterExecuteCondition;import com.fr.stable.StringUtils;import java.util.List;import java.util.Map;/** * @author Cloud.Liu * @version 10.0 * Created by Cloud.Liu on 2020/5/6 */public class NewCondition extends AbstractParameterExecuteCondition { @Override public boolean execute(List<Map
2)編譯之後的 class 檔案儲存到%BI_HOME%\webapps\webroot\WEB-INF\classes\com\fr\schedule資料夾下,若無 schedule 資料夾,建立即可。
3.2.2 排程任務設定
修改本文第二章已設定的排程管理任務,修改任務名稱為自訂類判斷。在調度週期設定「執行條件」時,選擇自訂類判斷,點選右側的下拉按鈕,選擇上面儲存的 class 檔案,並新增參數1和參數2,分別指派為 6 、ABC,如下圖所示:
設定完四個步驟之後儲存即可。
3.2.3 效果查看
點選運作監視,可以看到運作資訊顯示成功,如下圖所示:
若參數1和參數2的值不滿足「執行條件」,即將參數1的值改為4,點選運作監視,可以看到運作資訊顯示快照生成:跨越,如下圖所示: