初学者的BPMN教程 - BPMN for Beginners
本教程介紹了BPMN 2.0的基本功能。BPMN代表業務流程建模符號,是OMG維護的公共標準。它描述了業務流程圖分析和業務用戶可用於為業務流程建模並支持流程交互,異常處理,薪酬語義等的業務友好型流程圖。
BPMN 它被商業和開源BPMS工具供應商廣泛接受。它具有很強的適應性,可用於捕捉從抽象過程概述到詳細過程流程到實施準備過程的所有內容。BPMN的一個主要價值主張除了是圖表標準外,還有圖表背後的精確語義。形狀,符號(也稱為標記),邊界, BPMN 圖元素的位置以及它們的屬性具有明確定義的含義,並且必須由所有工具以相同的方式進行解釋。
儘管BPMN 1.1全面地處理了過程建模符號,但它實質上缺少解決交換格式(用於圖交換)的問題。這導致實施供應商採用不同的標準(BPEL,XPDL或JBPM的JPDL)來存儲BPMN流程模型,這不僅導致跨工具的可移植性損失,而且使各個利益相關者之間的溝通變得困難。
這裡我們將總結這些年出現的不同標準的簡短描述:
JPDL:
- 分析師和開發人員為導向。
- 與jBPM和Java緊密相連。
- 允許定制流程路由邏輯和一大組內置節點。
- 直觀的XML語言。
BPEL:
- 基於文本的(XML)業務流程建模語言,包括精確的執行語義。
- 用於編排Web服務。
- 不包含表示流程圖的圖形方面的元素。
XPDL:
- 旨在交換流程定義,包括圖形和工作流業務流程的語義。
- 顧名思義,它包含用於保存圖形信息的元素,例如節點的X和Y位置。
- 包含以及可用於運行流程的可執行方面。
BPMN的願景是為符號,元模型和交換制定單一規範。此外,BPMN 2.0已擴展為包括流程模型的編排和編排。
業務流程圖是由描述業務流程的一組圖形元素組成的簡單圖。BPD有四個主要元素:
- 流對象:表示業務流程圖的核心要素。
- 連接對象:用於連接BPMN核心對象
- 泳道:是在流程圖上組織活動和責任的機制。
- 工件:允許流程設計者擴展基本BPMN表示法,以在流程圖中包含有關流程的附加信息
正如我們所說的,流對像是表示業務流程圖(BPD)的核心元素的形狀,其中包括:
- 活動:是在過程中執行的任何工作。
- 事件:在業務過程中發生的任何事情。
- 網關:用於控制流程的流程。
下圖描述了一個包含開始事件,活動(任務),一些網關和結束事件的示例流程:
BPMN 和傳統流程圖之間最大的區別在於對事件的支持。事件是發生了什麼事情的信號,BPMN讓你說出過程應該如何響應。
這裡重要的定義!
事件可以發生在流程的開始(開始事件)或結束(結束事件)或中間(中間)。此外,一些活動可能發生在活動的邊界上。這表明事件可以中斷活動,並將序列流從“正常”流轉移到另一個流。
下圖描述了訂購某些產品的過程,其中包括a 開始事件(消息事件),中間錯誤事件,邊界計時器事件和兩個結束事件。
事件可以捕獲(當接收觸發器被觸發時)或拋出(向觸發器發送觸發器)類型。開始事件始終是捕獲類型,結束事件始終是拋出類型。中間事件可以是throw或catch類型。BPMN 2.0中有各種各樣的事件。事件類型列出如下:
消息事件 | 發送或接收消息。 | |
計時器事件 | 總是捕捉類型並用於表示等待特定時間條件評估為真。 | |
信號事件 | 用於發布和訂閱信號。 | |
錯誤事件 | 用於異常處理,它們只能在過程結束時發生。 | |
終止事件 | 用於終止進程,並且只能在進程結束時發生。 | |
有條件的事件 | 用於基於規則的觸發器。 | |
升級事件 | 在BPMN 2.0中新引入了處理升級條件。 | |
補償事件 | 介紹到處理過程中的賠償。 |
根據事件的組合,觸發事件的階段(開始,中間,邊界)以及事件是否中斷活動,事件可以用不同的圖形符號組合表示。
消息事件
消息事件是引用已命名消息的事件。消息具有名稱和有效負載,並且始終指向單個接收者。
消息的圖形表示可能因消息發送/接收的階段而異。
開始:消息從參與者到達並觸發流程的開始。
中間事件:消息從參與者到達並觸發事件。這會導致進程繼續等待消息,或者更改異常處理流。當用於“捕捉”消息時,事件標記將被填充。當用於“扔”信息時,事件標記將被填充。
中級邊界事件:消息從參與者到達並觸發事件。如果消息事件附加到Activity的邊界,它將在觸發時將Normal Flow改變為Exception Flow。
對於中斷與之相關的活動的消息事件,事件的邊界是固定的。
對於不中斷附加到其中的活動的消息事件,該事件的邊界是虛線的。
結束:這種類型的結束表示在過程結束時將消息發送給參與者。
計時器事件
定時器事件是由定義的定時器觸發的事件。它們可以用作開始事件,中間事件或邊界事件。
開始:可以設置特定的時間日期或特定的周期(例如,每天早上9點),以觸發流程的開始。
中間事件:可以設置特定的時間日期或特定週期(例如,每週二上午9點),以觸發事件。如果在主要流程中使用,則它用作延遲機制。如果用於異常處理,它將把正常流程改變為異常流程。
中間邊界:可以設置特定的時間日期或特定週期(例如,每天早上9點),以觸發事件。如果一個定時器事件附加到一個Activity的邊界上,它將在正常流程被觸發時變成一個異常流程。
對於中斷其所附的活動的計時器事件,事件的邊界是固定的。對於不中斷附加到其中的活動的計時器事件,該事件的邊界是虛線的。
信號事件
這種類型的事件用於發送或接收信號。信號用於過程組件內的一般通信。一個BPMN信號與任何可能有興趣注意並隨後作出反應的人都會發射到天空中的信號耀斑類似。因此,有一個信號源,但沒有具體的預期目標。這與具有特定源和特定目標(可以是實體或抽象角色)的BPMN消息不同。
開始:信號到達,已從另一個進程廣播並觸發進程啟動。請注意,信號不是消息,它具有消息的特定目標。
中間事件:如果事件是正常流程的一部分,則此類中間事件可以發送或接收信號。信號事件可能被中間捕獲信號事件捕獲。
中間邊界:當附加到活動邊界時,信號在被觸發時將正常流程改變為異常流程。Signal事件與Error事件的不同之處在於Signal為中斷活動(例如成功完成另一個活動)定義了一個更一般的非錯誤條件,並且其範圍比錯誤事件的範圍更大。
對於中斷與之相關的活動的信號事件,事件的邊界是固定的。對於不中斷附加到其中的活動的信號事件,該事件的邊界是虛線的。
錯誤:這種類型的結束表示當到達結束時將會廣播信號
錯誤事件
開始:錯誤開始事件只允許觸發一個在線事件子過程。鑑於錯誤的本質,具有錯誤觸發器的事件子過程將始終中斷其包含的過程。
中間邊界:中間錯誤捕獲事件只能附加到活動的邊界。請注意,錯誤事件始終中斷與其相關的活動,即沒有此事件的非中斷版本。事件的邊界因此總是穩固的。
結束:這種類型的結束表示應該生成一個命名的錯誤。錯誤將由具有相同ErrorCode的錯誤中間事件捕獲,或者在最近的封閉父活動(分層)邊界上沒有ErrorCode。
補償事件
補償是“撤銷”行為效果的手段。例如,假設您已經在流程開始時預訂了一場演出門票,那麼補償可能會取消預訂。
開始:補償開始事件只允許觸發在線補償事件子過程。發生補償時觸發此類事件。此事件不會中斷流程,因為流程必須在觸發此事件之前完成。
中級:用於補償處理-既激活又執行補償。
在正常流程中使用時,此中間事件表示需要補償。因此,它用於“拋出”補償事件,並且必須填寫事件標記。如果事件確定一項活動,那麼這是活動(而不是其他)將被補償。否則,薪酬將廣播給在流程實例中完成的所有活動,包括頂級流程和所有子流程。按照完成活動的相反順序,每項已完成的活動都將得到補償。要獲得補償,活動必須在其邊界附加補償中間事件。
邊界:補償邊界事件與其他邊界事件有不同的激活策略。其他邊界事件,例如信號邊界事件,當它們所連接的活動開始時被激活。補償邊界在附加活動成功完成時激活。此時,創建相應的補償事件訂閱。
當附加到Activity的邊界時,此事件用於“捕獲”補償事件,因此事件標記必須未填充。該活動將通過針對該活動提出的報酬來觸發。當事件被觸發時,與事件相關的補償活動將被執行。
請注意,其他事件的中斷和非中斷方面不適用於補償事件。補償只能在他們所附的活動完成後觸發。
因此他們不能中斷活動。事件的邊界總是穩固的。
結束:這種類型的結束表示補償是必要的。如果一項活動得到確定,那麼這就是將要得到補償的活動。否則,在流程內完成的所有活動(從頂級流程開始並包括所有子流程)都將按照相反的順序進行補償。要獲得補償,活動必須在其邊界附加補償中間事件。
有條件的事件
真實世界的業務流程往往體現出複雜的決策。條件事件因此可用於過程中包含的基於規則的觸發器。
開始:當“標準普爾500自開盤後變化超過10%”或“溫度超過300°C”等規則條件變為真時,觸發此類事件。事件的ConditionExpression必須變為false,然後才能再次觸發Event。
中級:這種類型的事件在規則條件變為真時觸發。
邊界:這種類型的事件在規則條件變為真時觸發。條件是一種表達。如果條件事件附加到Activity的邊界,它將在觸發時將正常流程更改為異常流程。
Visual Paradigm - DIY實例
描述:此業務流程圖示例說明了業務部門與人力資源部門的流程,首先報告職位空缺並發布職位廣告,其中包括流量,任務,開始和結束事件以及網關。使用此BPMN圖表模板開始構建您自己的。自定義BPMN圖以反映您的組織。點擊使用此模板開始。
繪製圖
posted on 2018-06-28 14:22 Lynch_Warren 阅读(4498) 评论(0) 编辑 收藏 举报