2015-02-09 38 views
3

我有一個oozie動作,它具有定義的輸入路徑。如果此路徑不存在,我想將輸入設置爲某個默認路徑。如何使用輸入路徑取決於標誌的Oozie動作

有沒有辦法讓路徑取決於條件?我知道我可以爲每個可能的輸入複製動作,並具有路由到正確動作的條件。但是,當具有許多條件路徑時,這是不可縮放的。

回答

3

Oozie允許您使用EL表達式,其中包括條件運算符?:。這使得在指定路徑不存在時實現默認路徑相當直接:

${fs:exists(specified_path) ? specified_path : default_path} 
4

您可以有一個決策節點如下。如果找到並找不到輸入路徑,則在其中控制您的操作。如果找到,您可以在行動中使用路徑。如果未找到,請在具有該控件的下一個操作中設置默認輸入路徑。

<decision name="isFileExists"> 
     <switch> 
      <case to="yourNextAction"> 
       ${fs:exists(yourInputPath)} 
      </case> 
      <default to="yourNextActionIfInputNotFound" /> 
     </switch> 
</decision> 
+0

感謝您的回覆。 如何設置工作流程內的默認輸入路徑? 看起來你的建議意味着複製每個可能輸入的動作。換句話說,似乎「yourNextAction」和「yourNextActionIfInputNotFound」幾乎是重複的。 – Shaharg 2015-02-11 09:46:33

相關問題