如何在OOZIE工作流程中使用逻辑运算符

Ank*_*thi 4 workflow controls hadoop oozie

我有一个oozie工作流,它在谓词中使用决策控制节点,我要“ &&”两个不同的条件,并且我需要在它们之间使用“ &&”来获得最终的TRUE / FALSE结果

我找不到这种情况的谓词语法

我正在使用这个

 <decision name="comboDecision">
        <switch>
            <case to="alpha">
              ---------
            </case>
        </switch>
  </decision>
Run Code Online (Sandbox Code Playgroud)

我想这样做=

<decision name="comboDecision">
        <switch>
            <case to="alpha">
             condition1 && condition2
            </case>
        </switch>
  </decision>
Run Code Online (Sandbox Code Playgroud)

有人可以帮我语法吗?

Man*_*lur 5

我将通过一个示例对此进行解释。

假设我们有一个Java操作(我们将此操作称为getAgeInfo),它输出一个人的年龄:

'person.age': Age of the person
Run Code Online (Sandbox Code Playgroud)

那个行动:

<action name='getAgeInfo'> 
    <!--Outputs 1 property: person.age: returns age of the person--> 
    <java> 
        ..........
    </java> 
    <ok to="makeClassification" /> 
    <error to="fail" /> 
</action>
Run Code Online (Sandbox Code Playgroud)

下一个动作是makeClassification。在makeClassification行动中,我们划分一个人到“儿童”,“少年”,“中年”或“资深公民”,根据人的年龄。

例如,如果一个人的年龄大于或等于(ge)12(并且)小于(lt)20,我们将该人分类为青少年,并且工作流程将转换为teenager行动。

以下是switch语句,它说明了“ and”的用法:

<decision name="makeClassification"> 
    <switch> 
        <case to="child"> 
            ${wf:actionData('getAgeInfo')['person.age'] gt 0 &&
              wf:actionData('getAgeInfo')['person.age'] lt 12} 
        </case> 
        <case to="teenager"> 
            ${wf:actionData('getAgeInfo')['person.age'] ge 12 && 
              wf:actionData('getAgeInfo')['person.age'] lt 20} 
        </case> 
        <case to="mid-aged"> 
            ${wf:actionData('getAgeInfo')['person.age'] ge 20 && 
              wf:actionData('getAgeInfo')['person.age'] lt 50} 
        </case> 
        <case to="senior-citizen"> 
            ${wf:actionData('getAgeInfo')['person.age'] ge 50} 
        </case> 
        <default to="error"/> 
    </switch> 
</decision>
Run Code Online (Sandbox Code Playgroud)

您可以在此处看到另一个示例:Oozie by Example,它说明了gt(大于),lt(小于),逻辑或(||),逻辑和(&&)的用法。