文章目录
- 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表 DBID
String 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 表中的 PROCDEFID
String 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();
}
执行上述代码,会在我们指定的路径下得到如下图片:就是我们部署时候的流程图。