JBPM節點分支之Group節點分析
JBPM的眾多節點類型中,唯獨Group節點比較有個性;Group節點作為眾多的節點中的一員,其并不能完成業務功能,但其作為一種節點的容器,可以對現有的節點類型進行“混搭”,從而構造出可以完成新的業務功能的節點類型!今天我們來簡單的學習一下Group節點,后續我們會進行深入分析JBPM的并發設計時候再次提到Group節點。
Group節點功能分析
作為父容器,可以將復雜的業務功能進行封裝為新的節點類型,便于業務復用和維護;
可以將各種復雜的業務過程嵌套到Group中,簡化復雜的業務流程;
可以作為流程并發的邊界容器;
可以作為子流程的承載容器,將子流程封裝為單獨的一種節點類型;
Group的個性特點
作為容器節點,可以嵌套任意類型的節點,可以滿足復雜的業務需求;
前一節點出弧可以直接跨越Group節點,與Group的子節點相連,子節點的出弧也可以直接Group的后一個節點;
嵌套多起點的時候可以進行并發;
下面我們看一下幾個有Group節點的流程,來體味一下Group的功能和使用
簡單的Group流程
在這個簡單的公文流轉(權且這樣稱謂吧)流程中,我們將這個簡單的業務流程嵌套到Group節點中,封裝了這個業務流程,當然從重用的角度來說,這并不是一個很好的例子,但是這同樣足夠體現了Group節點的功能!
流程圖如下
流程定義JPDL
測試用例代碼
帶有定時器的Group流程
Group作為可等待外部喚醒的節點(此喚醒不同task、state的人工外部喚醒,此處喚醒是由流程引擎進行喚醒繼續執行的),其出弧是可以設置定時器的,對于定時器我們后續會進行學習。在這個流程中,在Group開始執行后的2個業務小時后就會執行定時器所在的分支。
流程圖如下
流程定義JPDL
測試用例
具有多起點的Group流程(非并發流程)
在這個流程中,判斷節點連接到Group中的不同分支上,通過運行時變量承載的弧名稱來選擇執行不同的分支,這種情況下只能有一個分支執行。
流程圖如下
流程定義JPDL
測試用例
帶有Group的并發流程
帶有Group的并發流程與WF4中的Parallel活動類似,在下面的流程中,由于Group的子節點中由兩個沒有入弧的節點(不一定得是開始節點),所以運行時會產生兩個并發分支。
流程圖如下
流程定義JPDL
測試用例代碼
對Group的學習今天就到此為止,接下來我們會對JBPM中的并發節點以及并發機制進行分析。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
