「DAY04」理解 BPMN 核心概念:任務

Posted on September 18, 2023 • 1 min read • 161 words
Share via

任務(Task)是參與者為了達成流程定義的業務目標所需逐步執行的行動,因此每個任務都歸屬於一條通道(Lane)。

昨天我們學習BPMN「事件」的概念,我們繼續認識BPMN,利用大概10分鐘的時間來學習BPMN中的零件「任務」吧。

任務(Task)

任務(Task)是參與者為了達成流程定義的業務目標所需逐步執行的行動,因此每個任務都歸屬於一條通道(Lane)。

任務是流程中的原子活動。 當流程中的工作無法分解為更精細的細節時,則使用任務。 通常,最終用戶應用程序用於在執行任務時執行任務若將任務的意涵與自然語言進行比較,可發現流程的參與者即為主詞,活動則為謂詞,而通常活動的對象即為賓語。

BPMN定義多種事件類型,包括基於消息的事件、基於計時器的事件等,昨天僅使用了一般性的任務類型進行模型建模。

💡 A Task object

https://ithelp.ithome.com.tw/upload/images/20230918/201632540ZxdSBt5Ql.png

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

在初階的使用場景下,較小的機率會使用到下面這三個標記,筆者稍稍提及認識標記,如果再Task Object 正中下看到了符號,逆時針的迴圈箭頭(loop)、三豎平行線(multi-instance)、一對朝左的三角形(compensation),分別有不同的意義,但在今天不先開展講述。

https://ithelp.ithome.com.tw/upload/images/20230918/20163254TzsdgdCabU.png (圖片來源:Business Process Model and Notation(BPMN))


服務任務

服務任務(Service Task),通常由第三方軟體或程式自動執行,舉例來說,可以是一個網路服務或自動化的應用程式。服務任務在流程中扮演重要角色。

  • 服務任務用於呼叫各種服務。在 Camunda 流程引擎中,這可透過呼叫 Java 程式碼,或提供一個工作單位給外部執行者來實現。
  • 流程中的服務任務有助於提升效率,避免手動操作,並確保作業按照預定方式自動完成。
  • 當需要進行特定資料處理時,可以透過呼叫相關的服務任務,讓整個流程更加順暢且準確。

https://ithelp.ithome.com.tw/upload/images/20230918/20163254dZJw2zBHD3.png

服務任務(Service Task)

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


發送任務

發送任務(Send Task),主要用以將訊息傳送予外部參與者。當訊息傳送完成,該任務亦告結束。

https://ithelp.ithome.com.tw/upload/images/20230918/20163254OkIFmcGRJn.png

發送任務(Send Task)

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

💡 發送還是傳送,有甚麼差別

[Messenger 已傳送&已發送 - 問答板 | Dcard](https://www.dcard.tw/f/ask/p/234709504)

用戶任務

用戶任務 (User Task), 用於對需要人工(Human)參與者完成的工作進行建模。當流程執行到用戶任務時,將在指派任務的使用者或群組的任務清單中創建一項新任務,這可以是點擊表示完成的按鈕,也可以是由使用者提供某些數據作為輸入。

https://ithelp.ithome.com.tw/upload/images/20230918/20163254BrOSRPEO8O.png

用戶任務 (User Task)

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


接收任務

接收任務(Receive Task),用於等待特定訊息的到來,一旦收到消息,任務就完成。當流程執行到接收任務時,流程狀態會被提交至持久性儲存。這意味著流程將保持等待的狀態,直到流程引擎接收到特定的訊息,進而觸發接收任務之外的流程繼續進行。

  • 「接收任務」是一種簡單工作(simple Task)。
  • 在執行流程時,若遇到「接收任務」,流程的進度將被儲存起來。
  • 在此等待狀態中,流程會持續等待特定的訊息到達。
  • 流程引擎接收到符合條件的訊息後,將觸發「接收任務」外的流程繼續執行。

https://ithelp.ithome.com.tw/upload/images/20230918/20163254YecWQlmvhB.png

接收任務(Receive Task)

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

💡 發送任務(Send Task) vs 接收任務(Receive Task)icon比比看

發送任務(Send Task)

https://ithelp.ithome.com.tw/upload/images/20230918/20163254poxP8UO5yS.png

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

https://ithelp.ithome.com.tw/upload/images/20230918/20163254CRM74Qb9tt.png

接收任務(Receive Task)

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


手動任務

手動任務(Manual Task)是指在流程引擎之外的任務,通常用來描述那些與流程引擎無關、涉及未知系統或使用者界面的工作。主要用於對不需要流程引擎了納入到建模環節中。

手動任務具有以下特點:

  • 預期在沒有任何業務流程執行引擎的幫助下執行的任務。
  • 處理未知系統或使用者界面:通常涉及未知的系統、流程引擎未曾接觸過的系統,或是使用者界面。
  • 針對不需流程引擎了解的人:該任務無需特定的流程引擎知識,適用於不了解引擎運作的人執行。

https://ithelp.ithome.com.tw/upload/images/20230918/20163254QJuaipofMX.png

手動任務(Manual Task)

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


業務規則任務

業務規則任務(Business Rule Task)是在BPMN 2.0中的一項新導入,主要用於與業務規則引擎(Business Rules Engine)進行互動,可用於同步執行一個或多個規則。

  • 與業務規則引擎的交互: 透過業務規則任務,王小明可以與業務規則引擎進行有效的溝通與交互。這能夠讓他在流程中嵌入業務邏輯,實現更靈活的流程控制。
  • 同步執行規則: 當王小明的業務流程需要根據特定規則做出決策時,他可以使用業務規則任務同步執行這些規則。這有助於確保流程的順利執行並符合相應的業務邏輯。
  • 輸入與輸出的交換: 王小明可以通過業務規則任務向業務規則引擎提供必要的輸入數據,並從引擎獲取經過計算的輸出結果。這使得他能夠在流程中動態地調整數據處理過程。

https://ithelp.ithome.com.tw/upload/images/20230918/20163254CNDASZsgUG.png

業務規則任務(Business Rule Task)

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


腳本任務

腳本任務(Script Task),主要是用業務流程引擎可以解釋(讀取)的語言定義腳本。當流程進行至腳本任務階段,將執行對應之指令腳本,腳本執行完畢後,任務也完成。

  • 執行指令腳本:當流程進入腳本任務階段,系統將執行預先定義的指令腳本。
  • 流程整合:腳本任務有助於將不同步驟結合,以自動化方式推進流程。
  • 高彈性:腳本任務可按需設定,適用於各種不同流程,並能夠靈活適應變化。

https://ithelp.ithome.com.tw/upload/images/20230918/20163254C7W0L4FfgM.png

腳本任務(Script Task)

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

我們現在已經知道在BPMN中的任務,恭喜您對BPMN有「任務」的運用有所了解,明天我們再利用一些時間認識BPMN中的「網關」,我們一起加油吧~~

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

anything.best

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

Follow me

I work on everything coding and tweet developer memes