Activiti5開發(fā)研究:[2]兼容關(guān)口使用經(jīng)驗(yàn)
最近的項(xiàng)目中有使用到Activiti5工作流引擎中的InclusiveGateway(兼容關(guān)口),在開發(fā)過(guò)程中發(fā)現(xiàn)了一些情況。特此在這里記錄一下希望幫助到在學(xué)習(xí)Activiti5的朋友們。Defaul
最近的項(xiàng)目中有使用到Activiti5工作流引擎中的InclusiveGateway(兼容關(guān)口),在開發(fā)過(guò)程中發(fā)現(xiàn)了一些情況。特此在這里記錄一下希望幫助到在學(xué)習(xí)Activiti5的朋友們。
Default flow屬性對(duì)流程并行執(zhí)行的影響
在使用Activiti5的InclusiveGateway時(shí),設(shè)置Default flow屬性是否會(huì)影響流程的并行執(zhí)行情況成為一個(gè)關(guān)鍵問(wèn)題。下面通過(guò)開發(fā)截圖和代碼說(shuō)明來(lái)解釋這個(gè)問(wèn)題。
1. 當(dāng)在bpmn文件中對(duì)兼容關(guān)口的Default flow屬性設(shè)置一個(gè)默認(rèn)的流程分支時(shí),可以看到以下情況:
![默認(rèn)流程分支截圖]()
2. 在設(shè)置了默認(rèn)流程分支后,如果讓兼容關(guān)口后面的兩個(gè)分支條件同時(shí)成立,發(fā)現(xiàn)只有一個(gè)分支被執(zhí)行。期望的是它可以并行執(zhí)行“內(nèi)線施工”和“外線施工”,但實(shí)際上只走了被設(shè)置為默認(rèn)分支的“外線施工”。
3. 當(dāng)在bpmn文件中對(duì)兼容關(guān)口的Default flow屬性不設(shè)置一個(gè)默認(rèn)的流程分支時(shí),可以看到以下情況:
![無(wú)默認(rèn)流程分支截圖]()
4. 同樣進(jìn)行相同的操作后,這回出現(xiàn)了并行執(zhí)行“內(nèi)線施工”和“外線施工”的效果。
結(jié)論
根據(jù)上述實(shí)驗(yàn)結(jié)果,可以得出以下結(jié)論:
- 設(shè)置Default flow屬性會(huì)影響兼容關(guān)口后面分支的并行執(zhí)行情況。
- 當(dāng)設(shè)置了默認(rèn)分支時(shí),只有默認(rèn)分支會(huì)被執(zhí)行,其他分支將被忽略。
- 當(dāng)不設(shè)置默認(rèn)分支時(shí),所有滿足條件的分支都會(huì)被并行執(zhí)行。
綜上所述,開發(fā)者在使用Activiti5的InclusiveGateway時(shí),需要注意設(shè)置Default flow屬性對(duì)流程并行執(zhí)行的影響。正確設(shè)置該屬性可以實(shí)現(xiàn)預(yù)期的流程控制邏輯。