我有一个名为“CW”的动作节点,之后我放置了一个决策节点来检查“CW”是否返回错误......我应该如何编写谓词?
我试过了:
${ wf:errorCode('CW') eq '' }
然后去Y
${ wf:errorCode('CW') != '' }
然后去N
虽然它返回空字符串(没有错误),但它总是转到N
. 有什么建议吗?谢谢!!
尝试
${not empty wf:errorCode('CW')}
检测故障
这是检查对我有用的空字符串的唯一方法。
<decision name='decision-action'>
<switch>
<case to='success-action'>${firstNotNull(wf:lastErrorNode(), 'no error') eq 'no error'}</case>
<default to='failed-action' />
</switch>
</decision>
因此,要将这个答案直接与问题联系起来,这个有条件的
${firstNotNull(wf:errorCode('CW'), 'no error') eq 'no error}
应该映射到 Y。
您不能只使用 ok 和 error 操作转换来执行此操作吗?
<action name="CW">
<!--
....
-->
<ok to="Y"/>
<error to="N"/>
<\action>
${ wf:errorCode('CW') == null }
您还可以检查 CW 是否因错误退出,例如:
${ wf:lastErrorNode()=='CW' }
CW完成后。
${wf:lastErrorNode() eq wf:errorMessage(wf:lastErrorNode())} --> 将此条件视为成功,当作业失败时这两个值为空 ${wf:lastErrorNode() != wf:errorMessage(wf :lastErrorNode())} --> 将此情况视为失败,当作业失败时,这些值与它不匹配对我有用,希望这会有所帮助
${ wf:errorCode('CW') eq null } then go to Y
${ wf:errorCode('CW') != null } then go to N
为我工作