一、流程部署和流程定义信息查询
参照上文:activiti7+springboot2.1.x流程部署(二)
,在上文中介绍了如何部署一个流程,通过流程部署,会在数据的三张表生成相关的一些数据。
流程的启动会依赖之前的流程部署。
如果想要启动一个流程,那么我们首先要知道从什么地方入手。这里先介绍如何通过activiti提供的RepositoryService来查看流程定义和流程部署。
- 拿到RepositoryService的实现类的实例
/**
* 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();
}
执行结果:
[DeploymentEntity[id=2501, name=请假流程]]
[ProcessDefinitionEntity[myProcess_1:1:2504]]
二、启动流程
- 启动流程实例这里有两种方法,下面代码里面体现
/**
* 启动流程实例:
* 前提是先已经完成流程定义的部署工作
*
* 背后影响的表:
* act_hi_actinst 已完成的活动信息
* act_hi_identitylink 参与者信息
* act_hi_procinst 流程实例
* act_hi_taskinst 任务实例
* act_ru_execution 执行表
* act_ru_identitylink 参与者信息
* act_ru_task 任务表
*/
@Override
public void startPorcInstance() {
//创建流程实例,通过流程定义的id
//通过流程部署的key启动
// runtimeService.startProcessInstanceByKey("myProcess_1");
//通过流程部署id启动
runtimeService.startProcessInstanceById("myProcess_1:1:2504");
}
- 查看结果
- act_hi_actinst:历史活动信息,表结构介绍可以参考
image.png
-
act_hi_identitylink:参与者信息
image.png
参与者可以在画流程图的时候指定。image.png
-
act_hi_procinst:历史流程实例
image.png
-
act_hi_taskinst:历史任务实例
image.png
-
act_ru_identitylink:运行时参与者信息
image.png
-
act_ru_execution:运行时执行表。
-
act_ru_task:任务表,每完成一步流程就会把当前的任务删除,然后在放入下一个任务,这样可以使得表的数据相对较少,使整个表运行起来相对轻快。
image.png
补充
启动流程的时候,需要的 key和id可以在act_re_procdef表查看。
网友评论