一、流程部署和流程定義信息查詢
參照上文:activiti7+springboot2.1.x流程部署(二)
,在上文中介紹了如何部署一個流程询刹,通過流程部署,會在數(shù)據(jù)的三張表生成相關(guān)的一些數(shù)據(jù)萎坷。
流程的啟動會依賴之前的流程部署凹联。
如果想要啟動一個流程,那么我們首先要知道從什么地方入手哆档。這里先介紹如何通過activiti提供的RepositoryService來查看流程定義和流程部署蔽挠。
- 拿到RepositoryService的實現(xiàn)類的實例
/**
* RepositoryService
* 通過流程引擎來取得
* @param processEngine
* @return
*/
@Bean
public RepositoryService repositoryService(ProcessEngine processEngine){
return processEngine.getRepositoryService();
}
- 通過RepositoryService查看流程定義部署,流程定義
/**
* 查看流程部署
*/
@Override
public void queryProcessDeployment() {
DeploymentQuery query = repositoryService.createDeploymentQuery();
List<Deployment> list = query.deploymentName("請假流程").list();
System.out.println(list);
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
List<ProcessDefinition> list1 = processDefinitionQuery.deploymentId(list.get(0).getId()).list();
System.out.println(list1);
}
測試方法 如下
/**
* 測試流程部署查詢
*/
@Test
public void queryProcess() {
activityService.queryProcessDeployment();
}
執(zhí)行結(jié)果:
[DeploymentEntity[id=2501, name=請假流程]]
[ProcessDefinitionEntity[myProcess_1:1:2504]]
二瓜浸、啟動流程
- 啟動流程實例這里有兩種方法,下面代碼里面體現(xiàn)
/**
* 啟動流程實例:
* 前提是先已經(jīng)完成流程定義的部署工作
*
* 背后影響的表:
* act_hi_actinst 已完成的活動信息
* act_hi_identitylink 參與者信息
* act_hi_procinst 流程實例
* act_hi_taskinst 任務(wù)實例
* act_ru_execution 執(zhí)行表
* act_ru_identitylink 參與者信息
* act_ru_task 任務(wù)表
*/
@Override
public void startPorcInstance() {
//創(chuàng)建流程實例,通過流程定義的id
//通過流程部署的key啟動
// runtimeService.startProcessInstanceByKey("myProcess_1");
//通過流程部署id啟動
runtimeService.startProcessInstanceById("myProcess_1:1:2504");
}
- 查看結(jié)果
- act_hi_actinst:歷史活動信息,表結(jié)構(gòu)介紹可以參考
image.png -
act_hi_identitylink:參與者信息image.png
參與者可以在畫流程圖的時候指定澳淑。image.png -
act_hi_procinst:歷史流程實例image.png
-
act_hi_taskinst:歷史任務(wù)實例image.png
-
act_ru_identitylink:運行時參與者信息image.png
-
act_ru_execution:運行時執(zhí)行表。
-
act_ru_task:任務(wù)表插佛,每完成一步流程就會把當(dāng)前的任務(wù)刪除杠巡,然后在放入下一個任務(wù),這樣可以使得表的數(shù)據(jù)相對較少雇寇,使整個表運行起來相對輕快忽孽。image.png
補充
啟動流程的時候,需要的 key和id可以在act_re_procdef表查看谢床。image.png