其实就是查询act_re_procdef表里面的信息
网络异常,图片无法展示
|
// 查询流程定义 @Test public void queryProcessDefinition(){ // 获取引擎 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); // 获取RepositoryService RepositoryService repositoryService = processEngine.getRepositoryService(); // 获取ProcessDifinitionQuery对象 ProcessDefinitionQuery definitionQuery = repositoryService.createProcessDefinitionQuery(); // 查询当前的所有流程定义,返回流程定义信息的集合 // processDefinitionKey(流程定义的key) // 根据version进行排序,使用list查询所有的内容 List<ProcessDefinition> definitionList = definitionQuery.processDefinitionKey("myEvection") .orderByProcessDefinitionVersion() .desc() .list(); // 输出结果 for (ProcessDefinition processDefinition : definitionList) { System.out.println("流程定义ID:"+processDefinition.getId()); System.out.println("流程定义名称:"+processDefinition.getName()); System.out.println("流程定义key:"+processDefinition.getKey()); System.out.println("流程定义版本:"+processDefinition.getVersion()); } }
流程定义ID:myEvection:1:4
流程定义名称:出差申请
流程定义key:myEvection
流程定义版本:1
流程定义删除
把定义好的流程通过代码的方式进行删除,通过部署id进行删除,和创建流程定义的时候操作的那些表是一致的
注意:历史信息相关的表不会因为流程的删除而删除,也就是说删除流程定义时不会删除历史信息
// 删除流程部署信息 @Test public void deleteDeployMent(){ // 获取流程引擎 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); // 获取RepositoryService RepositoryService repositoryService = processEngine.getRepositoryService(); // 流程部署id String deploymentId="1"; // 通过部署id进行删除流程部署细腻些 repositoryService.deleteDeployment(deploymentId); }
网络异常,图片无法展示
|
上面删除的流程是我们已经进行完的,如果流程进行到某一部还没有完全进行完,这时候删除是不会成功的,但是我们可以通过级联删除,也就是外键,需要修改下代码
// 删除流程部署信息 // 如果当前的流程还没有完成,需要使用特殊的方式进行删除,原理就是级联删除 @Test public void deleteDeployMent(){ // 获取流程引擎 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); // 获取RepositoryService RepositoryService repositoryService = processEngine.getRepositoryService(); // 流程部署id String deploymentId="1"; // 通过部署id进行删除流程部署细腻些 // repositoryService.deleteDeployment(deploymentId); // 执行级联删除 repositoryService.deleteDeployment(deploymentId,true); }