什么是BPMN網關?
網關用於拆分或合並復雜的流程流場景,網關有下面幾種方式:
- BPMN排他網關
- BPMN並行網關
- BPMN包含網關
排他網關Exclusive Gateway
排他網關也稱專用網關,它是BPMN中使用的最常見的網關之一,被描繪為空鑽石或可以顯示為帶有“X”的鑽石圖形,建模者最常使用帶叉的鑽石。作為最佳實踐,一旦建模者選擇使用哪個符號,他應該在整個圖表中保持一致。
當用作分支網關(將順序流分成多個路徑,一分為二)時,專用網關可以具有2個或更多個傳出路徑,當某個變量條件返回“真”時,它會專門只指向下一個路徑,當使用專用網關時,對於某個流程實例,運行時只能在多個路徑中使用其中任意一條,這就是使用術語“獨占或排他”的意思,檢查每個路徑上的變量條件,直到有一個路徑的變量條件評估為真,一旦條件評估為真,流程就沿着為真的路徑前進,並且不再檢查其他路基的條件。
當用作聚合網關時,專用網關將傳遞它接收的任何令牌而不進行同步。這應該是直觀有意義的,因為專用網關最常用於合並來自分散的專用網關的路徑,其中只允許一個條件評估為真並發出令牌,如果融合的專用網關等待其他令牌進行同步,它將永遠等待。
並行網關
並行網關是BPMN中使用的最常見的網關之一,並且被描繪為內部帶有“+”的菱形
當用作分支網關(將一個順序流分成多個路徑)時,並行網關可以具有2個或更多個傳出路徑。使用並行網關時,必須為流程實例指定可采用的所有路徑。在沿着每條路徑行進之前沒有檢查條件。
當用作聚合網關時,並行網關將在合並和同步流之前會等待每個傳入路徑所有令牌的到達。
包含網關
包含性網關是BPMN中使用的最常見的網關之一,被描述為帶有圓圈的菱形,包含性網關=專用網關+並行網關。
當用作分支網關(將一個順序流分成多個路徑)時,包含網關可以具有2個或更多個傳出路徑。它用於沿着條件評估為“True”的所有路徑引導順序流,路徑策略可以有一個 或幾個或全部。檢查每個分支路徑的條件,如果它的計算結果為true,則發送一個令牌到路徑,使用包含網關,即使遭遇到一個分支的條件評估為“真”之后,也會檢查其余分支條件,以查看是否應沿其他路徑發送令牌。
通常,如果有一條路徑被識別為默認路徑。這意味着如果沒有其他路徑條件評估為true,則默認路徑將自動繼續。如果進程建模者未能定義缺省路徑且沒有任何路徑條件評估為true,則會發生運行時異常。
當用作聚合網關時,包含網關將在合並和同步流之前等待所有令牌到達。每個融合的包含網關需要在流程中的之前有關聯的那網關,以便它知道有哪些路徑被激活了以及它應該等待多少個令牌,等待哪些令牌。