我有一个oozie工作流,我在谓词中使用决策控制节点,我要“ &&”两个不同的条件,并且我需要在它们之间使用“ &&”来获得最终的TRUE / FALSE结果
我找不到这种情况的谓词语法
我正在使用这个
<decision name="comboDecision">
<switch>
<case to="alpha">
---------
</case>
</switch>
</decision>
我想这样做=
<decision name="comboDecision">
<switch>
<case to="alpha">
condition1 && condition2
</case>
</switch>
</decision>
有人可以帮我语法吗?
我将通过一个示例对此进行解释。
假设我们有一个Java操作(我们将此操作称为getAgeInfo
),它输出一个人的年龄:
'person.age': Age of the person
那个行动:
<action name='getAgeInfo'>
<!--Outputs 1 property: person.age: returns age of the person-->
<java>
..........
</java>
<ok to="makeClassification" />
<error to="fail" />
</action>
下一个动作是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>
您可以在此处看到另一个示例:Oozie by Example,它说明了gt(大于),lt(小于),逻辑或(||),逻辑和(&&)的用法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句