2012-02-06 71 views
2

我是JBPM(版本3)的新手,我試圖實施(失敗)一個決定。jBPM如何實施決策

我意識到,我必須做這樣的事情:

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

我不確定這個決定是如何工作的。尋找cenario 2我認爲是一樣的東西

「如果變量XPTO決策GE(的greates還是equals(?))5,然後採取行動A 其他行動B」。」是嗎?

和..如何在cenario 3作品???如何處理程序決定哪些行動是正確的

感謝

回答

0

我用下面的代碼:

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

那麼這是什麼:?#contextInstance.variables [ 'XPTO決定'] GE 5 ?? 在那種表達式的語言是什麼?你應該看看條件節點被解釋的jBPM3文檔d。如果contextInstance是您正在嘗試評估的過程變量,它應該如下所示: $ {contextInstance.variables ['asd']> 5}並且該評估將返回「true」或「false」,這意味着你需要有兩個轉換,一個叫做「true」,另一個叫做「false」,另一個叫做「false」。我很確定你沒有contextInstance對象來評估,所以如果你想直接嘗試評估一個流程變量用:$ {ASD> 5} 乾杯

+0

我在一些頁面中的 'GE' EXPR看到分裂國家。其中一個問題是你說的,我沒有一個contextInstance對象來評估。謝謝。 (當我有15個名譽時,我會爲你的答案投票)。 – JMarques 2012-05-02 10:08:39