工作流簡單理解,就是工作流程,工作中,有很多的流程都比較固定,可以說是有一定的模板性。就比如請假這個流程(可能不是很合理),張三請假,需要向主管申請,主管同意后,然后向人事申請,人事記錄后才算請假成功。像這樣,李四請假也是這個流程,王五也是這個流程。
於是咱們開發人員就想到了,既然很多流程都有一個固定的模板,那么咱們能不能將這個流程封裝起來呢,所以就多了工作流框架。比如Activity。
Activity7默認有25張表,用戶只需要使用流程設計器畫出流程圖,生成bpmn文件,bpmn本質為XML文件,因為安裝了actiBPM插件,才能可視化的看到流程內容。
簡單認識:
1、Activity的表說明
ACT_RE 流程定義和流程資源
ACT_RU 運行時,流程實例、任務、變量
ACT_HI 歷史表
ACT_GE 通用表
2、Activity的架構、類關系圖
獲取流程引擎的工具類
ProcessEngines。使用默認方式獲取配置文件,構造流程引擎。配置文件名字activity.cfg.xml,放在classpath下
ProcessEngineConfiguration。可以自定義配置文件名
使用上面兩個工具類,都可以獲得流程引擎
ProcessEngine:流程引擎,獲取各種服務的接口。
服務接口:用於流程的部署、執行、管理,使用這些接口就是在操作對應的數據表
RepositoryService 資源管理類
RuntimeService 運行時管理類
TaskService 任務管理類
HistoryService 歷史數據管理類
ManagementService 流程引擎管理類
3、BPNM插件
idea安裝actiBPM插件
4、流程符號、畫流程圖
流程符號:事件Event、活動Activity,網關Gateway,流程
使用流程設計器畫出流程圖
5、部署流程
使用Activity提供的API把流程圖的內容寫入數據庫中
資源類操作,使用RepositoryService
單文件部署:吧bpmn文件和png文件一個一個處理
壓縮包部署:把bpmn文件和png文件打包壓縮處理
Deployment deploy = repositoryService.createDeployment()
部署操作表:
act_re_deployment 部署表
act_re_procdef 流程定義表
act_ge_bytearray 資源表
6、啟動流程實例
使用RuntimeService根據流程定義的Key
核心代碼:
ProcessInstance instance = runtimeService.startProcessInstanceByKey("myEvection")
7、任務查詢
使用TaskService,根據流程定義的Key,任務的負責人進行查詢
核心代碼:
List<Task> taskList = taskService.createTaskQuery()
.processDefinitionKey("myEvenction") //流程Key
.taskAssignee("張三") //要查詢的負責人
.list()
8、任務完成
使用TaskService,用任務id完成任務
核心代碼:
taskService.complete("2505") //完成任務調用的方法
模糊記錄:
還有不同的網關,可以在連線過程中設置條件,比如請假流程,請假天數小於三天那么走主管、人事即可。天數大於等於三天那么需要走主管、總經理、人事,多了一個總經理的審核。
合並網關,請假流程,當張三發出請假之后,需要主管和經理都審核通過,才能進行下一步的操作。等等網關,等周末再熟悉的時候再進行記錄。