- 多重選擇(Multiple Choice)
在流程中,當一個活動完成后,有多個分支進行選擇,可以選擇執行其中的一個或者N個分支。
例子:比如去世博園玩,在門口檢票后,可以選擇A-E個片區中的N個進行觀光。

ACTIVITI 中的支持情況:
1.JPDL方式不支持先定義好這里的幾種,然后根據條件去篩選其中的幾種進行,但是ACTIVITI.4之后支持一種叫foreach的節點,允許我們在運行時指定幾種特定的任務,比如上面例子中的片區,我們可以在選定后再去循環。
2.BPMN方式支持根據條件執行多個子分支。
JFLOW中的支持情況:
1.通過定義流程為異表單分合流來實現。
a通過條件控制發起子線程數量。設置方向條件的時候,可以根據需要,選擇不通的條件設置,比如:崗位條件、部門條件、表單條件等。
b通過節點樹形中設置手工選擇方向控制,可以控制發起子線程的發起數量。
2.通過父子流程也可以實現。
- 同步聚合(Synchronizing Merge)
在流程中的某個聚合點,流程會等待所有的分支到來,才能激活后續的活動。如果分支只有一個,那么就變成簡單聚合模式;如果存在2個以上分支,那就是同步模式。
這種模式的關鍵在於能夠動態的根據分支的多少進行聚合。

ACTIVITI 中的支持情況:
可以通過設置ACTIVITI 的join節點屬性multiplicity的值為某個變量,並在程序中動態的修改變量的值來制定分支的數量。
JFLOW中的支持情況:
分合流中合流操作。無論分支有多少,都可以進行匯總,並且可以對匯總的子線程進行刪除操作、完成率控制等。
JFLOW的多重選擇與同步聚合實例圖:

結束為聚合點,中間的為分支。
- 多重聚合(Multiple Merge)
在流程中的多個分支,都可以激活后續的活動,也就是會產生多個實例。
例子:游客觀光完N個片區之后,每個片區各自的系統可以對游客在自己片區的信息進行存儲。
ACTIVITI 與JFLOW的支持請參考 同步聚合。

- 鑒別器(Discriminator)
在流程的某個聚合點,N個分支的第一個分支到達后,就立刻激活后續活動;與此同時,流程仍然要等待其余的分支完成並忽略完成。
注意:在其余分支未全部完成前,第一個到達的分支所激活的后續節點是無法執行的。
例子:個人申請提交后,並行提交給第一導師審批、第二導師審批、第三導師審批,他們中只要有一個完成了,那么就可以提交給學院審批。
N-out-of-M鑒別器模式:
跟鑒別器模式一樣的,只是這種模式是N個到達后,激活后續節點,而剩下的M-N個節點未完成前,新激活的后續節點一樣無法被執行。
ACTIVITI 中的支持情況:
沒有直接支持這種模式,但是通過自定義節點,應該是可以處理這種模式的。
JFLOW中的支持情況:
有兩個屬性的控制,可以實現功能,就是上面所說的子線程完成路和子線程刪除規則。
第1個:子線程完成率。 該規則可以決定是否可見
第2個:子線程刪除規則。該規則決定那些子線程可以被刪除以及他們的刪除方式。
