一.工作流介紹
1. 什么是工作流
工作流(Workflow),是對工作流程及其各操作步驟之間業務規則的抽象、概括描述。
工作流將一套大的業務邏輯分解成業務邏輯段, 並統一控制這些業務邏輯段的執行條件,執行順序以及相互通信,實現業務邏輯的分解和解耦。
做飯:
貸款審批:
2. 為什么要使用工作流
在企業日常的管理中,經常會有出差申請、加班申請、請假申請等流程。
如果用人工的方式管理這些流程,效率低,管理成本高。
因此為了提高效率,我們需要使用到工作流開發。
3. 使用工作流有什么好處
在工作流開發中,我們可以通過每一個流程定義清楚的看到業務的所有步驟,以及每一個流程實例運行到什么位置,參與者是誰;
能夠節省更多的時間成本,提升企業信息化水平。
二. 工作流引擎
1. Camunda介紹
Camunda是一種工作流引擎,是由Java開發的一個純Java庫。
工作流引擎是用來開發工作流的框架。
市面上主流的工作流引擎有Activiti、Flowable、Camunda等。
Activiti | Activiti 由 Alfresco 公司開發,目前最高版本為 Activiti cloud 7.1.0。由於團隊分歧 ,在Activiti6版本衍生出了Flowable。 |
Flowable | Flowable是基於Activiti6衍生出來的版本,開發團隊也是Activiti中分裂出來的,修復了Activiti6中的bug,並再此基礎上實現的DMN、BPEL支持。 |
Camunda | Camunda是基於Activiti5的,最新版本是Camunda7.17,開發團隊也是從Activiti中分裂出來的,發展軌跡和Flowable相似。通過壓力測試驗證Camunda BPMN引擎性能和穩定性更好,功能完善;除了BPMN,Camunda還支持CMMN(案例管理)和DMN(決策自動化)。Camunda不僅帶有引擎,還有很多強大的工具,用於建模、任務管理、監控和用戶管理等。 |
Camunda BPM(業務流程管理)平台,用來管理,部署的流程定義、執行任務、策略等等。
下載安裝一個Camunda平台,成功解壓 Camunda 平台的發行版后,執行名為start.bat(對於 Windows 用戶)或start.sh(對於 Unix 用戶)的腳本。此腳本將啟動應用程序服務器。
打開您的 Web 瀏覽器並導航到http://localhost:8080/以訪問歡迎頁面,Camunda的管理平台。
Camunda Modeler(用於編輯流程圖及其他模型)平台,用來定義流程圖,簡單說就是一個畫圖工具。
下載 Modeler 后,只需將下載文件解壓縮到您選擇的文件夾中。
成功解壓縮 zip 后,運行camunda-modeler.exe(對於 Windows 用戶)、camunda-modeler.app(對於 Mac 用戶)或camunda-modeler.sh(對於 Linux 用戶)。
2. Camunda常用Api
RepositoryService
該服務提供了管理和操控流程部署和流程定義的操作方法。
(1)查詢流程引擎所知道的部署和流程定義。
(2)掛起、激活流程定義。掛起意味着不能進行下一步的操作,而激活則是反操作。
(3)獲取各種資源,比如部署種包含的文件,或者引擎自動生成的流程圖等。
RuntimeService
處理已經啟動的流程實例,查詢流程實例和執行。
TaskService
需要被用戶或者系統執行的任務是流程引擎的核心,跟任務有關的資源都在這個服務中:
(1)查詢分配給用戶或組的任務。
(2)創建新的獨立任務。
(3)控制將任務分配給那個用戶,或者那些用戶,以及以何種方式參與到任務中。 認領並完成一個任務。認領是指某個用戶決定承擔某個任務。
FormService
獲取表單相關的服務,可獲取啟動表單、審批表單,提交表單等操作。
HistoryService
獲取執行的歷史任務、歷史的審批記錄、參數、表單等信息。
完