JBPM Как реализовать решение - PullRequest
2 голосов
/ 06 февраля 2012

Я новичок в JBPM (версия 3) и пытаюсь (неуспешно) реализовать Решение.

Я понял, что должен сделать что-то вроде этого:

Cenario 1:

<decision name="XPTO Decision" expression="#{contextInstance.variables['XPTO Decision']}">
 <transition name="To ActionA" to="ActionA"/>
 <transition name="To ActionB" to="ActionB"/>
 <transition to="ActionA"/>
 </decision>

Или:

Cenario 2:

 <decision name="XPTO Decision" >
 <transition name="To ActionA" to="ActionA"/>
 <transition name="To ActionA" to="ActionA"/>
 <transition to="ActionA">
 <condition expression="#contextInstance.variables['XPTO Decision'] ge 5"/>
 </transition>
 </decision>

Или:

Cenario 3:

 <decision name="XPTO Decision" >
 <handler class="bla.bli.MyDecisionHandler"/>
 <transition name="To ActionA" to="ActionA"/>
 <transition name="To ActionB" to="ActionB"/>
 <transition to="ActionA"/>
 </decision>

Я сделал что-то подобное, но мое решение уже относится к тому же действию (ActionB).

Я не уверен, как работает это решение. В поисках ценарио 2, я думаю, что-то вроде

"если переменная XPTO Decision ge (greates or equals (?)) 5, то действие A еще действие B "." Это правильно?

И ... Как работает Cenario 3 ??? Как обработчик может решить, какое действие является правильным?

Спасибо.

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Так что же это: # contextInstance.variables ['Решение XPTO'] ge 5 ?? На каком языке работает такое выражение? Вы должны взглянуть на документацию jBPM3, где объясняется условный узел. В случае, если contextInstance - это переменная процесса, которую вы пытаетесь оценить, она должна выглядеть примерно так: $ {contextInstance.variables ['asd']> 5} и эта оценка вернет "true" или "false", что означает, что вам нужно иметь два перехода, один из которых называется "true", а другой - "false"

Я почти уверен, что у вас нет объекта contextInstance для оценки, поэтому, если вы хотите оценить переменную процесса, попробуйте: $ {asd> 5} Приветствия

0 голосов
/ 02 мая 2012

Я использовал следующий код:

<decision name="XPTODecision">
    <description>
        XPTO decision.
    </description>
    <transition to="XX" name="xx">
        <condition> #{ body.Success} </condition>
    </transition>
    <transition to="YY" name="yy">
        <condition> <![CDATA[#{body.NumberXX <= body.Maximum && theBody.Success}]]></condition>
    </transition>
</decision>

<node name="XX">
...
</node>

<node name="YY">
...
</node>
...