5.7.分支節(jié)點

2022-07-24 10:55 更新

在UFLO當中,分支節(jié)點的作用是實現(xiàn)流程的并行流轉(zhuǎn),因為分支節(jié)點的功能特性,決定了其下至少要有兩條流出的連線,否則分支節(jié)點就沒有意 義了。分支節(jié)點在設計器工具欄上的圖標如下圖所示:


選中分支節(jié)點,在我們的畫布上添加一個新的分支節(jié)點,可以看到該節(jié)點在屬性窗口中除所有節(jié)點皆有的公共屬性外,沒有其專屬的屬性配置項。但對于流出當前分支節(jié)點的連線來說,可以在分支節(jié)點流出的連線上配置條件,這樣當流程實例到達分支節(jié)點時,會計算其下所有流出連線上配置的條件(如果有配置的話),如果條件結果返回true,那么該流出連線將會被分支節(jié)點采納,產(chǎn)生一個新的分支流程;否則將拋棄該流出連線上對應的分支流程。

可以看到,一旦我們?yōu)榉种Ч?jié)點下流出連接配置條件時,連線連接分支節(jié)點的起點就會添加一個小的菱形,表示當前流出連線上添加了條件,如下圖所示。


       從上面的流程圖中可以看到,我們?yōu)槊麨椤皌o 人工任務8”及“to人工任務8”的位于“分支2”上流出連線添加了條件,這樣當流程實例運行到“分支2”節(jié)點后,引擎會首先獲取到當前節(jié)點下所包含的三條連線,對于名為”to人工任務7“節(jié)點來說,因為其上沒有配置條件,所有它會被“分支2”節(jié)點采納產(chǎn)生新的分支流程,而另外兩條流出連線則會計算它們的條件,如果條件值返回true,那么會被采納,否則將會被拋棄。

      這里需要指出的是,在連線上配置條件時,一定要保證當前連接位于分支節(jié)點下,是作出分支節(jié)點的流出連線,否則添加的條件就沒有意義,因為只有分支節(jié)點下的流出連線,引擎才會計算連接上附加的條件,而對于其他節(jié)點下配置的流出連接,即使上面配置了條件,也會被引擎忽略。在UFLO當中,為連接添加條件有兩種方式:指定表達式及指定一個實現(xiàn)了com.bstek.uflo.process.handler.ConditionHandler接口的配置在spring中的bean的ID。

分支節(jié)點的作用是將一條串行的流程實例拆分成若干條并行的流程實例,那么這些被拆分的并行流程實例如果需要聚合的話又該如何處理呢?如上面的流程圖那樣,如果需要將由分支節(jié)點拆分產(chǎn)生的若干并行分支聚合起來,我們必須要使用“聚合”節(jié)點,一般情況下,分支與聚合節(jié)點總是成對出現(xiàn)的,關于聚合節(jié)點,后面有專門介紹,這里就不再贅述了。 在分支節(jié)點上可添加的流入與流出連線數(shù)量如下表所示:


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號