一、Flowable簡介
??Flowable是一個使用Java編寫的輕量級業務流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定義(用于定義流程的行業XML標準), 創建這些流程定義的流程實例,進行查詢,訪問運行中或歷史的流程實例與相關數據,等等。
??Flowable可以十分靈活地加入你的應用/服務/構架。可以將JAR形式發布的Flowable庫加入應用或服務,來嵌入引擎。 以JAR形式發布使Flowable可以輕易加入任何Java環境:Java SE;Tomcat、Jetty或Spring之類的servlet容器;JBoss或WebSphere之類的Java EE服務器,等等。 另外,也可以使用Flowable REST API進行HTTP調用。也有許多Flowable應用(Flowable Modeler, Flowable Admin, Flowable IDM 與 Flowable Task),提供了直接可用的UI示例,可以使用流程與任務。
官網地址:https://www.flowable.org/
文檔地址:https://www.flowable.org/docs/userguide/index.html#_getting_started
中文文檔:https://tkjohn.github.io/flowable-userguide/#_getting_started
二、下載安裝
- 下載
下載地址:https://www.flowable.org/
下載地址
下載地址:
https://github.com/flowable/flowable-engine/releases/download/flowable-6.4.2/flowable-6.4.2.zip -
解壓
目標結構
-
部署
拷貝war包到Tomcat的wapapps目錄:
部署 -
啟動Tomcat
(用戶名/密碼: admin/test)
地址:
流程圖管理: http://localhost:8080/flowable-modeler
任務管理: http://localhost:8080/flowable-task
用戶管理: http://localhost:8080/flowable-admin
認證管理: http://localhost:8080/flowable-idm
接口地址:http://localhost:8080/flowable-rest
應用權限 數據庫分成兩套
項目數據庫:項目所需表和flowable通過jar包生成的表(34張)
Flowable數據庫:用于流程圖創建保存,測試,監控(74張)
項目部署只需項目數據庫
三、Flowable的用戶權限體系
在接入Flowable的用戶權限體系的時候,有四種方式:
- 使用Flowable提供的默認IdmEngine進行用戶體系管理,該引擎包含了用戶、組的概念。
- 集成LDAP,實現輕量級用戶權限管理。通過IdentityService進行認證,用于由IdentityService處理所有認證業務的場景。
- 實現IdmIdentityService接口,自定義實現用戶、組的查詢
- 接入自定義的權限體系
用戶id => 獲取到租戶id、角色id集、部門id集
- 單用戶(assignee="用戶id")、多用戶(candidateUsers="用戶id1,用戶id2")
- 單角色、多角色(candidateGroups=":角色id1,:角色id2")
- 單部門、多部門(candidateGroups="部門id1:,部門id2:")
- 角色或部門(candidateGroups="角色id1:, :部門id1")
- 角色與部門
四、數據表結構
ACT_RE_ *:RE代表repository。具有此前綴的表包含靜態信息,例如流程定義和流程資源(圖像,規則等)。
ACT_RU_ *:RU代表runtime。這些是包含運行時的流程實例,用戶任務,變量,作業等的運行時數據的運行時表。
Flowable僅在流程實例執行期間存儲運行時數據,并在流程實例結束時刪除記錄。這使運行時表保持小而快。
ACT_HI_ *:HI代表history。這些是包含歷史數據的表,例如過去的流程實例,變量,任務等。
ACT_GE_ *:general數據,用于各種用例。
ACT_ID_*:Idm的用戶、組
數據表:
ACT_HI_ACTINST 流程實例的歷史運行節點表
ACT_HI_TASKINST 流程實例的歷史任務表
ACT_HI_VARINST 流程實例的歷史運行節點的變量表
ACT_HI_PROCINST 流程歷史部署記錄
ACT_HI_IDENTITYLINK 對應ACT_RU_IDENTITYLINK的歷史記錄表
ACT_RE_DEPLOYMENT 流程部署
ACT_RE_PROCDEF 流程定義表
ACT_RU_EXECUTION 流程實例執行過程的所有節點記錄
ACT_RU_IDENTITYLINK 流程實例運行過程中,各節點對應的用戶
ACT_RU_TASK 流程實例運行時的任務表
ACT_RU_VARIABLE 流程實例運行時節點的變量表
ACT_GE_BYTEARRAY 資源文件表
五、Docker環境運行
1. 前置條件
Docker 環境
2. 運行Flowable6.4.2
Docker Hub上提供了所有工作流的UI應用程序。
要啟動 Flowable REST 應用需要H2內存數據庫:
[root@localhost ~]# docker run -p8080:8080 flowable/flowable-rest
這個API文檔的訪問地址為:http://localhost:8080/flowable-rest/docs/
用戶名:rest-admin 密碼:test
要運行完整的Flowable 工作流,可以運行run the ‘All-in-One’ Docker 鏡像,這個鏡像包含Flowable IDM、Modeler、Task 、Admin UI 應用,運行容器為Tomcat,數據為內存數據庫H2。
[root@localhost ~]# docker run -p8080:8080 flowable/all-in-one
Flowable Modeler; http://localhost:8080/flowable-modeler
Flowable Task; http://localhost:8080/flowable-task
Flowable Admin; http://localhost:8080/flowable-admin
Flowable IDM; http://localhost:8080/flowable-idm
3. 運行測試
1) 用戶組權限管理
(用戶名/密碼: admin/test)
http://192.168.247.130:8080/flowable-idm/#/login
2) 流程定義管理
http://192.168.247.130:8080/flowable-modeler
3) 用戶任務管理
http://192.168.247.130:8080/flowable-task/#/
4) 后臺管理
http://192.168.247.130:8080/flowable-admin