業務流程模型與符號(BPMN)作為流程建模的通用語言。它使組織能夠可視化工作流程、定義邏輯,並在技術與非技術團隊之間傳達複雜的操作。然而,圖表的精確性完全取決於符號的正確使用。誤解網關或事件可能導致自動化失敗、合規風險或運營瓶頸。
本指南詳細解析BPMN 2.0的各項元素。我們將探討事件、活動、網關與連接物件的具體功能。目標是確保您的圖表不僅視覺上吸引人,而且邏輯嚴謹,並完全符合標準規範。

理解核心構建模塊 🧱
BPMN圖表由四個主要類別的元素構成。每一類別在定義業務流程生命周期中扮演獨特的角色。要建立穩健的模型,必須理解外觀相似形狀之間的細微差別。
- 事件:發生的事。以圓形表示,用來定義流程的開始、中間或結束。
- 活動:需要完成的工作。以圓角矩形表示,代表任務或子流程。
- 網關:決策與同步。這些菱形控制流程的走向。
- 連接物件: 連結所有內容的箭頭。
1. 事件:您流程的脈動 ⏱️
事件是您流程的觸發與結果。它們以圓形表示。圓形邊框的粗細代表事件的類型。理解這些差異對於準確的模擬與執行至關重要。
開始事件 🟢
開始事件標示流程實例的起點。它沒有任何流入的序列流。開始事件的邊框較細。圓形內部的符號定義了觸發流程的條件。
- 訊息開始: 由接收訊息觸發(例如電子郵件或API呼叫)。以信封圖示表示。
- 計時器開始: 由時間條件觸發(例如每週一上午9點)。以鐘錶圖示表示。
- 訊號開始: 由系統廣播的訊號觸發。
- 錯誤開始: 極少使用,代表由特定錯誤條件觸發的開始。
結束事件 🔴
結束事件標示流程實例的結束。它們沒有任何流出的序列流。邊框較粗,以表示終止。內部符號定義了結果。
- 訊息結束: 完成時發送訊息。
- 訊號結束: 向其他流程廣播信號。
- 錯誤結束: 表示流程因錯誤而結束。
- 取消結束: 專為事務性流程或子流程設計,表示取消。
- 終止結束: 立即停止流程的所有執行執行個體,不論其他平行路徑為何。
中間事件 ⚪
中間事件發生在開始與結束之間。它具有流入和流出的順序流。邊框較細,但內部有一個雙線圓形,以區分於開始和結束事件。
- 捕獲事件: 流程等待某事發生。範例包括捕獲訊息、計時器或信號。流程會暫停,直到條件滿足為止。
- 拋出事件: 流程產生某種東西。範例包括發送訊息或觸發信號。這通常發生在任務完成後。
- 補償: 對長時間執行流程中的錯誤進行特殊處理。
2. 活動:定義工作 🛠️
活動代表流程中實際執行的工作。它們以圓角矩形繪製,矩形內的圖示表示活動的具體類型。
任務 📝
任務是工作最小的單位。在圖表的上下文中,無法進一步分解。
- 使用者任務: 由人類執行者完成的工作。需要人類互動。
- 服務任務: 由資訊系統或服務執行的工作。無需人類介入。
- 手動任務: 在現實世界中手動完成的工作,可能在系統外部進行。
- 腳本任務: 由腳本或程式碼片段執行的工作。
- 商業規則任務: 由規則引擎或政策執行的工作。
- 發送/接收任務:用於非同步通訊的特定類型工作。
子流程 📂
當流程過於複雜時,會被拆分成子流程。這以底部帶有加號 (+) 的圓角矩形來表示。
- 收縮的子流程:顯示加號。詳細資訊被隱藏,以保持主圖表的整潔。
- 展開的子流程:顯示內部任務與流程。用於詳細文件記錄。
- 呼叫活動:對其他地方定義的可重複使用流程範本的參考。
3. 網關:邏輯控制器 🔄
網關決定流程的流向。它們是邏輯控制中最關鍵的元件。若未正確使用網關,流程將無法做出決策或處理平行工作流程。
互斥網關 (XOR) ⚡
互斥網關代表一個僅選擇一條路徑的決策點。其外觀為一個內部帶有「X」的菱形。當條件互斥時使用。
- 邏輯:若條件 A 為真,則走路徑 A;若條件 B 為真,則走路徑 B。僅有一條路徑處於激活狀態。
- 使用情境:審核流程(核准與駁回),根據資料值進行分支。
- 預設流程:若無條件相符,則採用預設流程。此流程必須明確標示。
平行網關 (AND) ⚙️
平行網關可同時分割或合併流程。其外觀為一個內部帶有「+」的菱形。
- 分割:建立多條平行路徑。所有路徑同時執行。
- 合併:等待所有進入的平行路徑完成後才繼續。
- 使用情境: 同時發送通知郵件並更新資料庫。在繼續之前等待多個批准。
包含閘道 (OR) 🌐
包含閘道允許選擇一個或多個路徑。它看起來像一個鑽石,內部有一個o在內部。
- 分流:評估條件。如果條件 A 為真,則路徑 A 激活。如果條件 B 為真,則路徑 B 激活。兩者皆可為真。
- 匯合:等待所有活躍路徑完成。它不會等待未被選擇的路徑。
- 使用情境:複雜分支,允許多個選項被選擇(例如,選擇多種運送方式)。
基於事件的閘道 ⚠️
此閘道會等待特定事件發生。它看起來像一個鑽石,內部有一個六邊形。用於等待外部觸發。
- 邏輯:流程會等待多個事件中的一個發生。一旦某個事件發生,其他可能的路徑將被取消。
- 使用情境:等待付款確認或逾時到期。
閘道類型比較
| 閘道類型 | 符號 | 分流邏輯 | 匯合邏輯 |
|---|---|---|---|
| 排他性 (XOR) | 鑽石內的 X | 根據條件選擇恰好一條路徑。 | 匯合單一傳入路徑。 |
| 平行 (AND) | 鑽石內的 + | 同時創建所有路徑。 | 等待所有傳入路徑完成。 |
| 包含性(或) | 菱形內部的 o | 啟用符合條件的任何路徑。 | 等待所有活躍路徑完成。 |
| 基於事件 | 六邊形內部 | 等待任何事件發生。 | 等待發生的事件。 |
4. 連接物件:連結流程 🔗
連接器定義資訊與控制在元件之間傳遞的方式。箭頭的樣式表示連接的性質。
順序流 🟦
順序流連接同一流程中的元件。它是一條實線,並帶有開放的箭頭。
- 功能:表示執行順序。
- 方向:從上到下,從左到右流動。
- 用途:連接單一泳道內的任務、事件與閘道。
訊息流 🟧
訊息流連接不同泳道或參與者之間的元件。它是一條虛線,並帶有開放的箭頭。
- 功能:表示參與者之間的資訊交換。
- 方向:可跨越泳道與泳道。
- 用途:從客戶發送請求至供應商。
關聯 🟩
關聯將資料實體或註解連結至流程元件。它是一條虛線,並帶有實心箭頭(或開放箭頭,視方向而定)。
- 功能:提供背景或資料參考,而不影響流程控制。
- 使用方式:將文件連結至任務,或將文字備註連結至特定閘道。
5. 池與泳道:組織責任 🏊
複雜的流程涉及多個參與方。BPMN 使用池與泳道來呈現這些關係。
池 🟦
池代表流程中的參與者。它是一個容器,用來存放流程定義。每個池都有其獨立的開始與結束事件。
- 公開池:代表外部組織或實體。
- 私人池:代表內部部門或系統。
- 訊息流:只能發生在不同池之間。
泳道 🟨
泳道是池內的子區塊。它們代表特定的角色、部門或系統,負責該區段的活動。
- 責任:明確指出誰執行哪項任務。
- 視覺清晰度:有助於追蹤角色之間的交接。
- 泳道:常與泳道互換使用,用來描述水平或垂直的區分。
6. 常見模式與反模式 🛑
即使經驗豐富的建模者也會犯錯。識別常見模式與反模式,可確保您的圖表具有持久性與可用性。
無限循環 ⚠️
一個沒有終止條件就返回到先前節點的順序流會造成無限循環。在圖表中,若代表重試機制則可接受,但在執行時會導致系統卡住。
- 解決方案: 確保迴圈中有計數限制或中斷條件。
孤兒任務
沒有任何流入或流出連接的任務稱為孤兒任務。這表示圖表不完整。
- 解決方案: 將所有任務連接到邏輯流程路徑上。
遺失的閘道
未正確合併或分支的平行流程可能導致死鎖。如果一個流程分成兩條平行路徑,但只有一條路徑回合并,另一條路徑可能會無限期地掛起。
- 解決方案: 始終使用平行閘道來合併所有平行分支。
7. 圖示繪製的最佳實務 📏
為維持高品質的流程文件,請遵循這些結構性指南。
命名的一致性
- 為任務使用清晰、以行動為導向的名稱(例如,審核發票 而非 發票).
- 根據觸發條件命名事件(例如,發票已收到 而非 開始).
- 以條件標示閘道(例如,金額 > 1000).
視覺層次
- 將開始事件放置於上方或左側。
- 將結束事件放置於下方或右側。
- 保持流程方向一致(自上而下或自左而右)。
- 避免線條交叉。使用彎折點來使流程更順暢。
資料物件
- 將資料以附著於任務的文件圖示來表示。
- 使用關聯來顯示讀取或寫入的資料。
- 不要將資料物件放置於序列流程上;它們屬於任務或閘道。
8. 進階閘道邏輯 🧠
高級建模通常需要嵌套的網關或複雜條件。理解不同類型網關之間的互動至關重要。
嵌套網關
將一個網關放置在另一個網關內部可以簡化複雜邏輯。然而,這會增加讀者的認知負擔。
- 建議: 保持邏輯簡單。如果一個網關需要五個條件,請考慮將流程拆分為子流程。
基於事件的選擇
使用基於事件的網關時,請確保所有等待的事件都是不同的。如果兩個事件可能同時發生,其行為將變得未定義。
- 建議: 如果存在歧義,請使用明確的邏輯來優先考慮一個事件而非另一個事件。
9. 解決常見符號混淆問題 🤔
即使是專家有時也會混淆相似的符號。以下是常見混淆的快速參考。
任務 vs. 服務任務
- 任務:人工工作。
- 服務任務:系統工作。
- 檢查: 是否需要有人點擊按鈕?如果是,則為任務。如果系統自動執行,則為服務任務。
並行 vs. 包含網關
- 並行: 所有路徑都會執行。
- 包含: 選定的路徑會執行。
- 檢查: 是否可能只有一條路徑執行?如果是,請使用包含網關。如果所有路徑都必須執行,請使用並行網關。
中間捕獲 vs. 投擲
- 捕獲: 流程會等待。
- 投擲: 流程會發送。
- 檢查:箭頭是指向事件(捕獲)還是從事件中指出(拋出)?
10. 實施考量 🚀
雖然本指南專注於符號表示,但這些圖表的實現通常涉及執行引擎。理解符號表示可確保邏輯能轉換為程式碼或工作流程規則。
- 條件評估: 確保網關條件為可測試的表達式。
- 逾時: 使用計時器中間事件來追蹤服務水平協議(SLA)。
- 通知: 使用訊息結束事件來觸發外部警報。
符號規則摘要 📜
遵循BPMN標準可確保您的圖表具有可移植性,並能被任何利益相關者理解。
- 事件為圓形: 開始(細線),結束(粗線),中間(雙細線)。
- 活動為圓角矩形: 任務(內部有圖示),子流程(內部有加號)。
- 網關為菱形: XOR(X),AND(+),OR(o),事件(六邊形)。
- 連接為線條: 順序(實線),訊息(虛線),關聯(虛線)。
- 圖示為文件: 數據、群組、註解。
透過掌握這些符號,您將建立流程優化的基礎。清晰的圖表能減少歧義,簡化溝通,並促進精確的自動化。投入學習符號的精力,將在最終業務流程的清晰度上獲得回報。
請記住,圖表是一份合約。如果邏輯不清晰,執行將出現錯誤。定期審查您的模型,以確保它們仍反映當前的業務現實。








