本文主要是介绍工作流JBPM操作API删除流程部署流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 8.3 删除流程定义
- 8.3.1 按照id删除(有关联信息会抛异常)
- 8.3.2 按照id删除(会删除关联信息)
- 8.3.3 按照key删除
- 8.4 获取部署时的文件资源
- 8.4.1 获取部署时的文件资源方式1
- 8.4.2 获取部署时的文件资源方式2
8.3 删除流程定义
删除流程定义可以按照id和key删除。
8.3.1 按照id删除(有关联信息会抛异常)
// 删除流程定义
@Test
public void deleteById(){String deploymentId = "1500001";ProcessEngine processEngine = Configuration.getProcessEngine(); // 有关联信息,抛异常processEngine.getRepositoryService().deleteDeployment(deploymentId);
}
上述这种删除方法,如果该流程id对应的流程有关联信息,将会抛异常。
8.3.2 按照id删除(会删除关联信息)
// 删除流程定义
@Test
public void deleteById(){String deploymentId = "1500001";ProcessEngine processEngine = Configuration.getProcessEngine(); // 有关联信息,会级联删除processEngine.getRepositoryService().deleteDeploymentCascade(deploymentId);
}
上述这种删除方法,如果该流程id对应的流程有关联信息,会级联删除!
8.3.3 按照key删除
// 删除流程定义 按照key
@Test
public void deleteByKey(){String key = "b";List<ProcessDefinition> list = processEngine.getRepositoryService().createProcessDefinitionQuery().processDefinitionKey(key).list();// 遍历 删除if( list != null && list.size() > 0){for(ProcessDefinition processDefinition : list){System.out.println(processDefinition.getId());ProcessEngine processEngine = Configuration.getProcessEngine(); processEngine.getRepositoryService().deleteDeploymentCascade(processDefinition.getDeploymentId());}}
}
该方式会将该key下的所有实例删除。
8.4 获取部署时的文件资源
8.4.1 获取部署时的文件资源方式1
该方式要指定jbpm4_deployment表 DBID 和 jbpm4_lob 表中deplotmentId对应的name_的值
// 获取部署时的文件资源(查看流程图)
@Test
public void get() throws Exception{ProcessEngine processEngine = Configuration.getProcessEngine(); // jbpm4_deployment表 DBIDString deplotmentId = "1510001"; // jbpm4_lob 表中deplotmentId对应的name_的值String resourceName = "test.png"; // 获取所有资源名称Set<String> names = processEngine.getRepositoryService().getResourceNames(deplotmentId);for(String name : names){System.out.println(name);}InputStream in = processEngine.getRepositoryService().getResourceAsStream(deplotmentId, resourceName);// 输出到本地文件 (路径自己指定,但要注意路径中包含的文件夹都存在)OutputStream outputStream = new FileOutputStream("d:/photoAlbum/process-" + deplotmentId +".png");for(int b = -1;(b = in.read()) != -1;){outputStream.write(b);}in.close();outputStream.close();
}
执行上述代码,会在我们指定的路径下得到如下图片:就是我们部署时候的流程图。
8.4.2 获取部署时的文件资源方式2
该方式要指定 jbpm4_execution 表中的 PROCDEFID 字段。
@Test // 得到图片资源2
public void get2() throws IOException{// jbpm4_execution 表中的 PROCDEFIDString processDefinitionId = "test-2";ProcessDefinition processDefinition = processEngine.getRepositoryService().createProcessDefinitionQuery().processDefinitionId(processDefinitionId).uniqueResult();InputStream in = processEngine.getRepositoryService().getResourceAsStream(processDefinition.getDeploymentId(), processDefinition.getImageResourceName());// 输出到本地文件OutputStream outputStream = new FileOutputStream("d:/photoAlbum/process/deplotmentImg/" + processDefinitionId + ".png");for(int b = -1;(b = in.read()) != -1;){outputStream.write(b);}in.close();outputStream.close();
}
执行上述代码,会在我们指定的路径下得到如下图片:就是我们部署时候的流程图。
这篇关于工作流JBPM操作API删除流程部署流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!