BPMN(Business Process Modeling Notation)是一種流程建模的通用和標準語言,用來繪製業務流程圖,以便更好地讓各部門之間理解業務流程和相互關係,旨在促進業務流程的溝通和理解。web
BPMN 2.0 只要瞭解如下 三個基本建模元素,就能掌握BPMN2.0的核心。服務器
1、基本概念介紹ide
1. 事件 (Event)spa
三種主要類型的事件:
設計
1. 開始 - 表示一個流程的開始。
2. 中間 - 發生的開始和結束事件之間,影響處理的流程。
3. 結束 - 表示該過程結束。orm
注意:若是您添加一個信封的圖標給上述任何某個事件,那你將觸發一個消息事件。便可以是由一個消息的到達而啓動一個進程,也能夠是在中間的某個位置與中間事件中發送一個消息(或捕獲消息),或者能夠在一個過程結束時發送的消息。對象
2. 活動 (Activity)blog
活動是工做或任務的一個通用術語。首先,一個活動能夠是一個任務,或者它能夠是一個當前流程的子處理流程; 其次,你還能夠指定不一樣類型的活動。進程
例如,任務能夠是須要人工完成的任務,也能夠自動完成的任務,好比由腳本完成的任務,或服務任務(交由web服務器處理的指令)。事件
3. 網關 (Gateway)
網關用來處理決策,有兩種經常使用網關須要瞭解:
• 排他網關 (x) ——只有一條路徑會被選擇。
流程執行到該網關時,按照輸出流的順序逐個計算,當條件的計算結果爲true時,繼續執行當前網關的輸出流;
若是多條線路計算結果都是 true,則會執行第一個值爲 true 的線路。若是全部網關計算結果沒有true,則引擎會拋出異常。
排他網關須要和條件順序流結合使用,default 屬性指定默認順序流,當全部的條件不知足時會執行默認順序流。
• 並行網關 (+) ——全部路徑會被同時選擇。
拆分 —— 並行執行全部輸出順序流,爲每一條順序流建立一個並行執行線路。
合併 —— 全部從並行網關拆分並執行完成的線路均在此等候,直到全部的線路都執行完成才繼續向下執行。
• 包容網關 (+) —— 能夠同時執行多條線路,也能夠在網關上設置條件
拆分 —— 計算每條線路上的表達式,當表達式計算結果爲true時,建立一個並行線路並繼續執行
合併 —— 全部從並行網關拆分並執行完成的線路均在此等候,直到全部的線路都執行完成才繼續向下執行。
• 事件網關 (+) —— 專門爲中間捕獲事件設置的,容許設置多個輸出流指向多個不一樣的中間捕獲事件。當流程執行到事件網關後,流程處於等待狀態,須要等待拋出事件才能將等待狀態轉換爲活動狀態。
四、子流程和調用活動
子流程是嵌入在主流程中,能夠被主流程或其餘流程經過ID調用,即不用重複畫出子流程的細節;
子流程的限制:
1)只能且僅能包含一個空啓動事件
2)至少要有一個結束事件
3)子流程中順序流不能直接設置輸出流到子流程以外的活動上,若是須要能夠經過邊界事件代替。
五、描述性建模符號
泳道(Pool):表明流程中的參與者,用來對活動進行組織和分類;
泳池 (Lane):泳道里的一個子劃分;
信息流(message flow):虛線表示;
數據對象和倉庫;
文本註釋;
總結
下圖就是本文所介紹的最經常使用的BPMN符號了。掌握了這些,就能夠理解或者設計出大部分的工做流程和業務流程圖了。
BPMN2.0爲全部業務元素定義了標準的符號,不一樣的符號表明不一樣的含義,以OA應用中請假流程爲例,使用標準的BPMN2.0圖元定義示意如圖:
在上述的流程示意圖中,所涉及到的執行語義圖元主要有8類:
除了上述標準的BPMN2.0圖元外,上述流程圖還使用了泳道(業務部門、人力資源部、考勤系統),分別表示流程活動所涉及到的部門或角色。