(五)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就是级联删除
        }
        
    }
}

 

  •  注意级联删除

 

posted @ 2017-12-06 17:19  shyroke、  阅读(1176)  评论(0编辑  收藏  举报
作者:shyroke 博客地址:http://www.cnblogs.com/shyroke/ 转载注明来源~