其實在前面的請假審批中也使用了網(wǎng)關(guān)的概念
排他網(wǎng)關(guān)
-
排他網(wǎng)關(guān)盯捌,也可以叫基于數(shù)據(jù)的排他網(wǎng)關(guān),用來在流程中實現(xiàn)決策。當流程執(zhí)行到這個網(wǎng)關(guān)的時候闸昨,所有分支會判斷條件是否為true,如果為true則執(zhí)行該分支薄风。(排他網(wǎng)關(guān)只會選擇一個為true的分支執(zhí)行饵较,即使有兩個分支都為true也只會選擇一條去執(zhí)行),也就是多條線路選擇其中一條走遭赂,多條條件相等則走id更小的值告抄,打開xml文件可以看到
ExclusiveGateway
并行網(wǎng)關(guān)
- 并行網(wǎng)關(guān)允許將流程分成多條分支,也可以把多條分支會聚到一起嵌牺,并行網(wǎng)關(guān)的功能時基于進入和外出順序流的
- fork分支:并行后的所有外出的順序流打洼,為每個順序流都創(chuàng)建一個并發(fā)分支。
- join匯聚
所有到達并行網(wǎng)關(guān)逆粹,在此等待的進入分支募疮,直到所有進入順序流的分支都到達后,流程才會通過匯聚網(wǎng)關(guān)(也就是說當分支里的任務(wù)都完成了匯聚才會走一下步)
一個并行網(wǎng)關(guān)可以有多個進入和多個外出順序流僻弹,網(wǎng)關(guān)會先匯聚所有的進入的順序流阿浓,然后才切分多個并行分支。
區(qū)別:并行網(wǎng)關(guān)不會解析條件蹋绽。即使順序中定義了條件芭毙,也會被忽略
前面第一個ParallelGateway就是fork分支,后面的是join匯聚卸耘,如果流程圖里有多組并行分支退敦,中間的ParallelGateway起到j(luò)oin匯聚的作用和fork分支的作用。
包含網(wǎng)關(guān)
-
包含網(wǎng)關(guān)可以說是并行網(wǎng)關(guān)和排他網(wǎng)關(guān)的結(jié)合體蚣抗,和排他網(wǎng)關(guān)一樣侈百,可以在外出順序流上定義條件,包含網(wǎng)關(guān)會解析它們。主要的區(qū)別是钝域,包含網(wǎng)關(guān)可以選擇多余一條符合條件的分支讽坏,這就跟并行網(wǎng)關(guān)有點類似了。
即所有外出流的條件都會被解析例证,結(jié)果為true的順序流會以并行的方式繼續(xù)往下執(zhí)行路呜,會為,每個順序流創(chuàng)建一個分支织咧,然后包含網(wǎng)關(guān)會等待所有條件為true的分支流程都完成后拣宰,流程才會通過包含網(wǎng)關(guān)繼續(xù)往下執(zhí)行。
下面以體檢為例畫出流程圖烦感,就是當一個部門體檢巡社,有可能有些人需要附加體檢項目,有些人不需要手趣,所以說這時候就會有多條分支晌该,當所有分支都一一執(zhí)行完了才會通過下一個的包含網(wǎng)關(guān)。
inclusiveGateway
分析
前提:userType=1 是普通的體檢绿渣,userType=2 是需要附加體檢項目
當張三填寫請體檢單假如他的Type為2朝群,我們可以看出userType=2時三個分支都成立,所以張三需要把這三個分支上的項目都做完(沒有順序中符,可以先執(zhí)行附加體檢項目姜胖,也可以先做常規(guī)體檢項目,反正所有分支的任務(wù)執(zhí)行完就可以)才能往下執(zhí)行淀散。