(五)Activiti之获取流程定义图片和流程定义删除
一、获取流程定义图片
/** * 通过流程部署ID获取流程图图片 */ @Test public void getImageById()throws Exception{ InputStream inputStream=processEngine.getRepositoryService() .getResourceAsStream("7501", "HelloWorld/HelloWorld.png"); // 根据流程部署ID和资源名称获取输入流 FileUtils.copyInputStreamToFile(inputStream, new File("D:/helloWorld.png")); }
- 结果
- 实际开发的时候,我们把图片存到项目路径下,然后名字的话,可以根据当前日期年月日时分秒来命名,然后得到路径后,在新的页面,或者是模态窗口里显示图片;
二、流程定义删除
package com.shyroke.activiti.firstActiviti;
import java.io.File;
import java.io.InputStream;
import java.util.List;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.ProcessDefinition;
import org.apache.commons.io.FileUtils;
import org.junit.Test;
public class ProcessDefineTest2 {
/**
* 获取默认流程引擎实例,会自动读取activiti.cfg.xml文件
*/
private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
/**
* 删除搜友key相同的流程定义
*/
@Test
public void deleteKey() {
List<ProcessDefinition> pdList=processEngine.getRepositoryService()
.createProcessDefinitionQuery().processDefinitionKey("myFirstProcess").list();
for(ProcessDefinition pd:pdList) {
processEngine.getRepositoryService().deleteDeployment(pd.getDeploymentId(),true); // 默认是false true就是级联删除
}
}
}
- 注意级联删除