發佈流程
// bpmn輸入流
// 定義zip輸入流
InputStream inputStream = this
.getClass()
.getClassLoader()
.getResourceAsStream("***.zip");
ZipInputStream zipInputStream = new ZipInputStream(inputStream);
// 獲取repositoryService
RepositoryService repositoryService = processEngine.getRepositoryService();
// 流程部署
Deployment deployment = repositoryService.createDeployment()
.addZipInputStream(zipInputStream)
.deploy();
所執行操作
流程定義部署後操作 activiti 數據表如下:
act_re_deployment :流程定義部署表,記錄流程部署信息
act_re_procdef :流程定義表,記錄流程定義信息
act_ge_bytearray :資源表
說明:
act_re_deployment 和 act_re_procdef 一對多關係,一次部署在流程部署表生成一條記錄,但一次部署可以部署多個流程定義,每個流程定義在流程定義表生成一條記錄。每一個流程定義在act_ge_bytearray 會存在兩個資源記錄,bpmn 和 png。
啓動流程
// 獲取RunTimeService
RuntimeService runtimeService = processEngine.getRuntimeService();
// 根據流程定義key啓動流程
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("***");
//或者使用id啓動
ProcessInstance processInstance = runtimeService.startProcessInstanceById("***");
所執行操作
act_ru_execution : 流程實例執行表,記錄當前流程實例的執行情況
說明:
流程實例執行,如果當前只有一個分支時,一個流程實例只有一條記錄且執行表的主鍵 id 和流程實例 id 相同,如果當前有多個分支正在運行則該執行表中有多條記錄,存在執行表的主鍵和流程實例id 不相同的記錄。不論當前有幾個分支總會有一條記錄的執行表的主鍵和流程實例 id 相同一個流程實例運行完成,此表中與流程實例相關的記錄刪除。
act_ru_task : 任務執行表,記錄當前執行的任務
說明:啓動流程實例,流程當前執行到第一個任務結點,此表會插入一條記錄表示當前任務的執行情況,如果任務完成則記錄刪除。
act_ru_identitylink : 任務參與者,記錄當前參與任務的用戶或組
act_hi_procinst : 流程實例歷史表,流程實例啓動,會在此表插入一條記錄,流程實例運行完成記錄也不會刪除。
act_hi_taskinst : 任務歷史表,記錄所有任務
開始一個任務,不僅在 act_ru_task 表插入記錄,也會在歷史任務表插入一條記錄,任務歷史表的主鍵就是任務 id,任務完成此表記錄不刪除。
act_hi_actinst : 活動歷史表,記錄所有活動
活動包括任務,所以此表中不僅記錄了任務,還記錄了流程執行過程的其它活動,比如開始事件、結束事件