「DAY02」認識 BPMN 2.0 起步:參與者

Share via

BPMN 2.0是一種流程建模語言,用於視覺化業務流程。通過符號和圖形表示活動、參與者、任務等,幫助組織理解、設計和改進流程。也因為圖形化方法使得流程變得易於理解,從而促進了流程優化和溝通。

昨天有提及「要學會Camunda要先知道甚麼是BPMN」,BPMN也算是要建立業務流程的國際通用語言,所以今天我們利用大概10分鐘的時間來認識BPMN。

BPMN 2.0是一種流程建模語言,用於視覺化業務流程。通過符號和圖形表示活動、參與者、任務等,幫助組織理解、設計和改進流程。也因為圖形化方法使得流程變得易於理解,從而促進了流程優化和溝通。

💡 Camunda 也是基於BPMN 2.0的圖形化方法建立流程。

參與者定義是?

參與者(Participants)是指參與流程的對象(可以是組織、角色、系統或個人),代表流程中活動的執行者。參與者主要包括池(Pool)和通道(Lane)。

https://ithelp.ithome.com.tw/upload/images/20230916/201632540y8dSJ609u.png

參與者示意圖

(圖片來源:筆者繪製,工具:canva)


池(Pool)和通道(Lane)

池(Pool)和通道(Lane)定義了流程中的職責。

池(Pool)在其所處的環境中具有明確的團隊邊界,例如: XX公司。

https://ithelp.ithome.com.tw/upload/images/20230916/20163254CKGHlSlnsm.png 池示意圖

(圖片來源:筆者繪製,工具:canva)


通道(Lane)則始終位於某個池(Pool)或另一個通道(Lane)中,通道(Lane)與同一池中的其他通道(Lane)可以無限制地通信。

https://ithelp.ithome.com.tw/upload/images/20230916/20163254iMSkAAbAiT.png 通道示意圖

(圖片來源:筆者繪製,工具:canva)

舉例來說

在台灣XX公司有四個部門需要參與流程。台灣XX公司可以被定義劃歸為一個池,而這四個部門可以被定義劃歸為四個不同的通道。在同一部門內部,也就是在同一通道中,一系列的任務可能會由一個人執行,或者由具有相同職責的其他人執行。換句話說,通道的參與者可以是個人,也可以是具有相同職責的多個人。

https://ithelp.ithome.com.tw/upload/images/20230916/20163254dUz8RxoIm8.png 台灣XX公司流程劃分

(圖片來源:筆者自製,使用bpmn.io)


💡 符號解釋

1.池(Pool)

https://ithelp.ithome.com.tw/upload/images/20230916/20163254VrSx57nwBn.png

(圖片來源:Business Process Model and Notation(BPMN))

2.通道(Lane)

https://ithelp.ithome.com.tw/upload/images/20230916/20163254ZK3C6UvQHM.png

(圖片來源:Business Process Model and Notation(BPMN))

補充說明:

通道(Lane)可以認定為流程中的參與者,也會因為性質的關係,在流程執行中的扮演不同角色。此外,通道也可以將不同的任務或子流程分組,分派給不同的任務管理者。


參與者流程範例

在下面這個範例中,流程管理員將3個階段分別指派給張小明、李小華和王小東。 當張小明完成階段一後,李小華會接著執行階段二,然後輪到王小東執行階段三。

在這個範例中,流程管理員具有最高的管理權限,負責編排各階段的執行。

https://ithelp.ithome.com.tw/upload/images/20230916/20163254G4nu3uWyGW.png

參與者流程範例1

(圖片來源:筆者自製,使用bpmn.io)


💡 符號解釋

1.開始事件(Start Event)

https://ithelp.ithome.com.tw/upload/images/20230916/20163254N8sXiLXIRM.png

(圖片來源:Business Process Model and Notation(BPMN))

2.結束事件(End Event)

https://ithelp.ithome.com.tw/upload/images/20230916/20163254PnTU6jPqSb.png

(圖片來源:Business Process Model and Notation(BPMN))

3.活動(Activity)

https://ithelp.ithome.com.tw/upload/images/20230916/20163254SZm20cOF3E.png

(圖片來源:Business Process Model and Notation(BPMN))

4.順序流(Sequence Flow)

https://ithelp.ithome.com.tw/upload/images/20230916/20163254pM86upOOpE.png

(圖片來源:Business Process Model and Notation(BPMN))

然而,在實務上真的會如此嗎?會有管理者負責統籌流程、協調任務的傳遞嗎?實際上並沒有這樣的情況。

如果所有參與者都在同一個組織(池)內,我們需要明確地對組織間的協調合作進行建模。這種情況下,我們需要為每位任務的負責人分配一個獨立的通道,每個通道代表著微型流程,這些微型流程通過訊息的傳遞相互聯繫,進而將整個流程串聯起來。

https://ithelp.ithome.com.tw/upload/images/20230916/20163254QyqAL8fd8M.png

參與者流程範例2

(圖片來源:筆者自製,使用bpmn.io)

https://ithelp.ithome.com.tw/upload/images/20230916/20163254M2ToeaDWki.png


💡 符號解釋

1.訊息開始事件(Message Start Event)

https://ithelp.ithome.com.tw/upload/images/20230916/201632546Pn2AoxFSp.png

(圖片來源:Business Process Model and Notation(BPMN))

2.順序流(Message Flow)

https://ithelp.ithome.com.tw/upload/images/20230916/2016325458IC3Zw9FE.png

(圖片來源:Business Process Model and Notation(BPMN))


飲料店外送實務舉例

流程需求

顧客透過菜單選擇所想要的飲料,爾後進行電話訂購。當飲料店接獲顧客的訂單後,立即開始製作飲料,隨後由店家的外送員進行運送,在指定地點現場與店家的外送員完成付款。

💡 外送員假定是店家店員,並非是由外送平台派員

從上述流程中,可明確劃出二個主要參與者,分別為顧客和飲料店。

從飲料店(60嵐)的角度進行模擬

飲料店實務內部分析

飲料店(60嵐)的通道會有三個,接單員、製作員、外送員,動作會有接收訂單、製作訂單、外送、收款。

https://ithelp.ithome.com.tw/upload/images/20230916/20163254QxojvAnO4q.png

飲料店外送實務1

(圖片來源:筆者自製,使用bpmn.io)

從客戶的角度進行模擬

從想喝飲料開始,會經歷選擇飲料、打電話下單、收到飲料、付款、喝飲料,有可能飲料店忘記製作,所以有設計催單的過程。

https://ithelp.ithome.com.tw/upload/images/20230916/20163254h62yFZfWkv.png

飲料店外送實務2

(圖片來源:筆者自製,使用bpmn.io)

客戶電話點餐流程與飲料店的流程結合起來搭建模型。

https://ithelp.ithome.com.tw/upload/images/20230916/20163254cmqHQ9TLms.png

飲料店外送實務3

(圖片來源:筆者自製,使用bpmn.io)


💡 符號解釋

1.定時器中間事件(Timer Intermediate Event)

https://ithelp.ithome.com.tw/upload/images/20230916/20163254fQ3lvizKQo.png

(圖片來源:Business Process Model and Notation(BPMN))

2.排他網關(Exclusive Gateway)

https://ithelp.ithome.com.tw/upload/images/20230916/20163254FN1ONdGBMb.png

(圖片來源:Business Process Model and Notation(BPMN))

3.並行網關(Parallel Gateway)

https://ithelp.ithome.com.tw/upload/images/20230916/20163254CaeFtOgD6f.png

(圖片來源:Business Process Model and Notation(BPMN))

4.事件網關(Event Gateway)

https://ithelp.ithome.com.tw/upload/images/20230916/20163254DJl5MBsX1a.png

(圖片來源:Business Process Model and Notation(BPMN))


大家仔細想想,其實,上述流程仍有一些不盡完善之處。如在【飲料店外送】的情境中,有些事件和任務之間存在交叉引用,如付款等。此外,有些任務的執行可能對其他參與者不可見,例如製作珍珠奶茶、喝飲料等。

對於使用者而言,區分任務的可見性顯得相當重要。從嚴格的語義角度來看,【飲料店外送】中的「接到訂單」並不準確,因為訊息事件通常指的是從流程外部接收的訊息,但在此模型中並非如此。

為了解決上述問題,可以利用【協作圖(Collaboration Diagram)】呈現參與者之間的合作關係。在建模時,可以控制協作圖的不同粒度。例如,可以僅顯示店家內部各部門之間之間的協作,或進一步展示公司與公司之間的協作。

為了修正所顯示的誤解,以及提供更佳的視覺呈現,我們可以運用訊息流的方式將不同的通道(參與者)聯繫在一起。這樣,我們可以對上述流程進行重新塑模。

https://ithelp.ithome.com.tw/upload/images/20230916/20163254DCnmDIQcQf.png

飲料店外送實務4

(圖片來源:筆者自製,使用bpmn.io)


💡 符號解釋

1.訊息中間事件(Message Intermediate Event)

https://ithelp.ithome.com.tw/upload/images/20230916/201632541Bz2LauubR.png

(圖片來源:Business Process Model and Notation(BPMN))


上圖,我們將客戶的流程進行的流程建模,同時也將飲料店內部流程也做建模。但大多數的情況下,建模者並不一定清楚所有參與者的內部流程細節。例如,每個人對於自家內部的運作流程知悉,但對於其他公司的內部流程則不知悉。在這種情況下,我們首先需要確定不同店家之間外送的接口(例如特定訊息的傳遞方式),接著才能基於這些接口進行建模。只要這些接口確定下來,整個外送流程就能順利展開

在這個例子中我們知道,飲料店跟客戶之間的接口有三個:

1.接單

2.接受客戶查單或者安撫客人

3.外送及收款

作為顧客,他並不太在意飲料店內部的運作細節。店員接到訂單後,可以立刻開始準備飲料;或者有可能因為缺乏某些原材料,需要馬上前往採購後才能開始製作。不過這些細節並不是顧客所關心的重點,他們只希望能按時收到訂購的飲料。因此,在進行建模時,可以將整個飲料店的運作過程簡化,以隱藏內部的細節不談。

https://ithelp.ithome.com.tw/upload/images/20230916/20163254I3tsSXiPC4.png

飲料店外送實務5

(圖片來源:筆者自製,使用bpmn.io)

有時候我們只需要關注參與者之間互動的訊息,也就是介面定義,而不需在意各自內部的細節。這樣一來,我們可以將顧客點飲料送外送的流程簡化成更高層次的模型。

本章重點整理

在實際建立模型時,整個流程是會相反的。首先會針對飲料店外送的情境,分析顧客與店家間的互動界面(訊息流程),進行模型化,再根據需求,分別對顧客訂購的內部流程與店家的接單流程進行建模,然後將這兩者緊密結合起來。

(1)只有最重要的事情才會在展開的池(Expanded Pool)中進行建模。

每個流程中只會有一個展開的泳池,如果場景更複雜可以依據需求,可以有一個或多個摺疊的游泳池,目的是為了突顯模型的重點。


💡 注意:

上面的例子中使用了多個展開的游泳池,純粹是為了方便讀者理解。在實際建模時,應盡量避免這種情況。


(2)每個通道都應該代表特定的角色。

以採購流程為例,可能會將採購部門作為一個通道。更好的做法是區分採購人員和採購經理,因為採購經理可能有審核複核等特殊職責。

(3)通道不應該代表個人。

以「王小明」為例,「王小明」代表特定的個人,在實務上是不被推薦的做法。因為整個流程的執行不應該因為某個人的原因而受阻。在實際流程中,任務的執行者不應該是某個特定的人,而應該是一個角色(某一個功能環節的螺絲),例如做飲料的店員。

我們現在已經知道在BPMN中的「參與者」關係,恭喜您對BPMN有初步的了解,明天我們再利用一些認識BPMN中的「事件」,我們一起加油吧~~

💡 如果有任何問題,歡迎在下方留言!! 筆者頭一回寫技術文,如果內容有誤,或者內容的呈現上有所缺陷,如果您願意,歡迎在下方留言給我呦~~

anything.best

這是我的部落格,歡迎點擊閱覽喔~~會不定期更新文章

Last updated: September 16, 2023
Follow me

I work on everything coding and tweet developer memes