activiti 查询流程定义启动流程

查询流程定义

要启动流程就必须要知道有哪些流程,可能会涉及到权限的问题所以启动流程前先查询流程定义的信息(流程定义的信息放在act_re_procdef的表中)所以用RepositoryService中的方法查询,可以根据act_re_procdef表的索引去查询

流程定义信息查询

    RepositoryServicerepositoryService=   processEngine().getRepositoryService();

        List<ProcessDefinition>processDefinition=repositoryService.createProcessDefinitionQuery()

        .orderByProcessDefinitionVersion().desc().list();

 

List<ProcessDefinition> processDefinitionLast= repositoryService.createProcessDefinitionQuery()

                .orderByProcessDefinitionVersion().desc()//查询所有的数据

                .latestVersion().list();//查询所有流程的最新版本

        for(ProcessDefinitionpd :processDefinition){

           

            System.out.println("----------------------------------------------");

            System.out.println("流程定义名:"+pd.getName());

            System.out.println("流程定义版本:"+pd.getVersion());

            System.out.println("流程定义KEY"+pd.getKey());

            System.out.println("流程部署Deploymentid"+pd.getDeploymentId());

            System.out.println("流程定义id"+pd.getId());

            }

启动流程

可以根据流程定义ID(startProcessInstanceById)或者KEY(startProcessInstanceByKey)启动。注意:根据流程定义KEY:deploy_classpath,会以最新版本的流程定义启动。在启动流程时可以设置流程的启动人以及流程变量

   //启动流程

    @Test

    public void test_startProcess(){

        RepositoryServicerepositoryService =   processEngine().getRepositoryService();

        RuntimeServiceruntimeService =processEngine().getRuntimeService();

        IdentityServiceidentityService =processEngine().getIdentityService();

        //设置流程启动人(开始节点的执行人)

        identityService.setAuthenticatedUserId("zzz");

        //根据流程定义ID

         runtimeService.startProcessInstanceById("deploy_classpath:2:2504");

        }


    //设置流程启动人(开始节点的执行人)

              identityService.setAuthenticatedUserId("by_key");

       //根据流程定义KEYdeploy_classpath ,会以最新版本的流程定义启动

        runtimeService.startProcessInstanceByKey("deploy_classpath");


ID流程启动后各表的变化



KEY流程启动后各表的变化




猜你喜欢

转载自blog.csdn.net/qi95719/article/details/65941114