4

我有一个名为“CW”的动作节点,之后我放置了一个决策节点来检查“CW”是否返回错误......我应该如何编写谓词?

我试过了:

${ wf:errorCode('CW') eq '' }然后去Y

${ wf:errorCode('CW') != '' }然后去N

虽然它返回空字符串(没有错误),但它总是转到N. 有什么建议吗?谢谢!!

4

6 回答 6

5

尝试

${not empty wf:errorCode('CW')} 

检测故障

于 2016-01-20T08:54:28.323 回答
2

这是检查对我有用的空字符串的唯一方法。

<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。

于 2016-08-16T22:08:14.657 回答
1

您不能只使用 ok 和 error 操作转换来执行此操作吗?

<action name="CW">

    <!--
      ....
    -->

    <ok to="Y"/>
    <error to="N"/>
<\action>
于 2013-11-11T22:59:21.037 回答
0
${ wf:errorCode('CW') == null }

您还可以检查 CW 是否因错误退出,例如:

${ wf:lastErrorNode()=='CW' }

CW完成后。

于 2015-06-22T15:30:41.057 回答
0

${wf:lastErrorNode() eq wf:errorMessage(wf:lastErrorNode())} --> 将此条件视为成功,当作业失败时这两个值为空 ${wf:lastErrorNode() != wf:errorMessage(wf :lastErrorNode())} --> 将此情况视为失败,当作业失败时,这些值与它不匹配对我有用,希望这会有所帮助

于 2019-03-15T02:08:27.323 回答
0
${ wf:errorCode('CW') eq null } then go to Y

${ wf:errorCode('CW') != null } then go to N

为我工作

于 2017-03-10T12:23:48.713 回答