bpmn複雜網關

2.複雜的網關

複雜網關是一個不同的類別。雖然它不常被使用,但在某些情況下它的使用是合理的。例如:我們想要訂披薩。我們仔細閱讀我們最喜歡的供應商的菜單。在研究了兩種來源之後,一旦我們找到了想要的東西,就會開始。

我們如何建立模型呢?圖2.1展示只有對兩個源對比研究之後才訂購比薩餅。

圖2.1披薩研究與合併。

在圖2.2中,兩者都不是選項:基於令牌概念,我們將執行兩次訂披薩的任務。

圖2.2:使用xor合併的披薩研究。

圖2.3中的or合併也沒有解決這個問題:當一個令牌到達or合併時,流程會等待可能永遠不會到達相應的令牌那裏。or合併行爲因此與and網關相同。

圖2.3:披薩研究與或合併。

解決方案是結合註釋的複雜網關,如圖2.4所示。一旦其中一個任務完成,複雜的合併就會將令牌發送披薩訂單的任務。當下一個令牌到達複雜合併時,它被消耗。它就消失了。

圖2.4:具有複雜合併的披薩研究。

下面是類似的情況:假設我們一次執行四個任務。第5個任務將在前四個任務中的3個完成後執行。例如,我們問四個朋友他們想在哪家披薩店點餐。一旦三位朋友提出了意見,我們就會做出決定。我們可以用一個複雜的網關來建模我們的同步行爲。(參見圖2.5。)

圖2.5:使用複雜網關實現n個合併中的m個。

原則上,一個複雜的網關也可以作爲分割來應用,例如,將幾個不同的網關彙總在一個符號中,以節省一些空間。通過在註釋中編寫分割語義,可以用一個複雜的網關替換分離出來的or。但這並沒有真正意義,而且我們從來沒有將複雜網關用作分割,也沒有在任何實際模型中看到過它的使用。


本文會持續更新,歡迎關注,技術支持:盤古BPM 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章