IF條件判斷教程
更新時間 2023-07-21 00:27:30
最近更新時間: 2023-07-21 00:27:30
分享文章
本章節主要介紹DataArts Studio的IF條件判斷教程操作。
當您在數據開發模塊進行作業開發編排時,想要實現通過設置條件,選擇不同的執行路徑,可使用IF條件判斷。
本教程包含以下三個常見場景舉例。
- 根據前一個節點的執行狀態進行IF條件判斷
- 根據前一個節點的輸出結果進行IF條件判斷
- 多IF條件下當前節點的執行策略
IF條件的數據來源于EL表達式,通過EL表達式,根據具體的場景選擇不同的EL表達式來達到目的。您可以參考本教程,根據您的實際業務需要,開發您自己的作業。
EL表達式用法可參考表達式概述。
根據前一個節點的執行狀態進行IF條件判斷
場景說明
根據前一個CDM節點是否執行成功,決定執行哪一個IF條件分支。基于下圖的樣例,說明如何設置IF條件。
作業樣例


配置方法
- 登錄DataArts Studio控制臺,找到所需要的DataArts Studio實例,單擊實例卡片上的“進入控制臺”,進入概覽頁面。
- 選擇“空間管理”頁簽,在工作空間列表中,找到所需要的工作空間,單擊工作空間的“數據開發”,系統跳轉至數據開發頁面。
- 在“作業開發”頁面,新建數據開發作業,然后分別選擇CDM節點和兩個Dummy節點,選中連線圖標
并拖動,編排圖上圖所示的作業。其中CDM節點的失敗策略需要設置為“繼續執行下一節點”。 - 右鍵單擊連線,選擇“設置條件”,在彈出的“編輯EL表達式”文本框中輸入IF條件。
每一個條件分支都需要填寫IF條件,IF條件為通過EL表達式語法填寫三元表達式。當三元表達式結果為true的時候,才會執行連線后面的節點,否則后續節點將被跳過。
此Demo中使用的EL表達式為:
#{Job.getNodeStatus("node_name")}
這個表達式的作用為獲取指定節點的執行狀態,成功狀態返回success,失敗狀態返回fail。本例使用中,IF條件表達式分別為:
- 上面的A分支IF條件表達式為:
#{(Job.getNodeStatus("CDM")) == "success" ? "true" : "false"} - 下面的B分支IF條件表達式為:
#{(Job.getNodeStatus("CDM")) == "fail" ? "true" : "false"}
輸入IF條件表達式后,配置IF條件匹配失敗策略,可選擇僅跳過相鄰的下一個節點,或者跳過該IF分支后續所有節點。配置完成后點擊確定,保存作業。
配置失敗策略


- 測試運行作業,并前往實例監控中查看執行結果。
- 待作業運行完成后,從實例監控中查看作業實例的運行結果,如下圖所示。可以看到運行結果是符合預期的,當前CDM執行的結果為fail的時候,跳過A分支,執行B分支。
作業運行結果

