activiti7+springboot2.1.x流程启动(三)

一、流程部署和流程定义信息查询

参照上文:activiti7+springboot2.1.x流程部署(二)
,在上文中介绍了如何部署一个流程,通过流程部署,会在数据的三张表生成相关的一些数据。
流程的启动会依赖之前的流程部署。
如果想要启动一个流程,那么我们首先要知道从什么地方入手。这里先介绍如何通过activiti提供的RepositoryService来查看流程定义和流程部署。

  1. 拿到RepositoryService的实现类的实例
    /**
     * RepositoryService
     * 通过流程引擎来取得
     * @param processEngine 
     * @return
     */
    @Bean
    public RepositoryService repositoryService(ProcessEngine processEngine){
        return processEngine.getRepositoryService();
    }
  1. 通过RepositoryService查看流程定义部署,流程定义
    /**
     * 查看流程部署
     */
    @Override
    public void queryProcessDeployment() {
        DeploymentQuery query = repositoryService.createDeploymentQuery();
        List list = query.deploymentName("请假流程").list();
        System.out.println(list);

        ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
        List 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");

    }
  • 查看结果
  1. act_hi_actinst:历史活动信息,表结构介绍可以参考
    image.png
  2. act_hi_identitylink:参与者信息
    image.png

    参与者可以在画流程图的时候指定。
    image.png
  3. act_hi_procinst:历史流程实例
    image.png
  4. act_hi_taskinst:历史任务实例
    image.png
  5. act_ru_identitylink:运行时参与者信息
    image.png
  6. act_ru_execution:运行时执行表。
  7. act_ru_task:任务表,每完成一步流程就会把当前的任务删除,然后在放入下一个任务,这样可以使得表的数据相对较少,使整个表运行起来相对轻快。
    image.png

补充

启动流程的时候,需要的 key和id可以在act_re_procdef表查看。
image.png

你可能感兴趣的:(activiti7+springboot2.1.x流程启动(三))