JBPM節(jié)點分支之Group節(jié)點分析
JBPM的眾多節(jié)點類型中,唯獨Group節(jié)點比較有個性;Group節(jié)點作為眾多的節(jié)點中的一員,其并不能完成業(yè)務功能,但其作為一種節(jié)點的容器,可以對現(xiàn)有的節(jié)點類型進行“混搭”,從而構造出可以完成新的業(yè)務功能的節(jié)點類型!今天我們來簡單的學習一下Group節(jié)點,后續(xù)我們會進行深入分析JBPM的并發(fā)設計時候再次提到Group節(jié)點。
Group節(jié)點功能分析
作為父容器,可以將復雜的業(yè)務功能進行封裝為新的節(jié)點類型,便于業(yè)務復用和維護;
可以將各種復雜的業(yè)務過程嵌套到Group中,簡化復雜的業(yè)務流程;
可以作為流程并發(fā)的邊界容器;
可以作為子流程的承載容器,將子流程封裝為單獨的一種節(jié)點類型;
Group的個性特點
作為容器節(jié)點,可以嵌套任意類型的節(jié)點,可以滿足復雜的業(yè)務需求;
前一節(jié)點出弧可以直接跨越Group節(jié)點,與Group的子節(jié)點相連,子節(jié)點的出弧也可以直接Group的后一個節(jié)點;
嵌套多起點的時候可以進行并發(fā);
下面我們看一下幾個有Group節(jié)點的流程,來體味一下Group的功能和使用
簡單的Group流程
在這個簡單的公文流轉(權且這樣稱謂吧)流程中,我們將這個簡單的業(yè)務流程嵌套到Group節(jié)點中,封裝了這個業(yè)務流程,當然從重用的角度來說,這并不是一個很好的例子,但是這同樣足夠體現(xiàn)了Group節(jié)點的功能!
流程圖如下
流程定義JPDL
測試用例代碼
帶有定時器的Group流程
Group作為可等待外部喚醒的節(jié)點(此喚醒不同task、state的人工外部喚醒,此處喚醒是由流程引擎進行喚醒繼續(xù)執(zhí)行的),其出弧是可以設置定時器的,對于定時器我們后續(xù)會進行學習。在這個流程中,在Group開始執(zhí)行后的2個業(yè)務小時后就會執(zhí)行定時器所在的分支。
流程圖如下
流程定義JPDL
測試用例
具有多起點的Group流程(非并發(fā)流程)
在這個流程中,判斷節(jié)點連接到Group中的不同分支上,通過運行時變量承載的弧名稱來選擇執(zhí)行不同的分支,這種情況下只能有一個分支執(zhí)行。
流程圖如下
流程定義JPDL
測試用例
帶有Group的并發(fā)流程
帶有Group的并發(fā)流程與WF4中的Parallel活動類似,在下面的流程中,由于Group的子節(jié)點中由兩個沒有入弧的節(jié)點(不一定得是開始節(jié)點),所以運行時會產(chǎn)生兩個并發(fā)分支。
流程圖如下
流程定義JPDL
測試用例代碼
對Group的學習今天就到此為止,接下來我們會對JBPM中的并發(fā)節(jié)點以及并發(fā)機制進行分析。
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

