流程定义查询

来源:互联网 发布:python的列表推导式 编辑:程序博客网 时间:2024/06/05 06:09

流程定义查询



package com.buyiner.activiti;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.RepositoryService;import org.activiti.engine.repository.DeploymentBuilder;import org.activiti.engine.repository.ProcessDefinition;import org.activiti.engine.repository.ProcessDefinitionQuery;import org.apache.commons.io.FileUtils;import org.junit.Test;/** * 流程定义查询 * @author Administrator * */public class ProcessDefinitionTest {//创建流程引擎对象private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /** * 1.发布一个流程 * 会在三张表中产生数据 * act_ge_bytearray  2条 * act_re_deployment 1条 * act_re_procdef  1条 * @throws Exception */@Testpublic void deployProcess() throws Exception {//创建仓服务RepositoryService repositoryService = processEngine.getRepositoryService();//创建一个发布流程DeploymentBuilder builder = repositoryService.createDeployment();//添加流程配置信息builder.name("请假流程信息").addClasspathResource("bpmn/hellworld3.bpmn")//设置流程规则文件.addClasspathResource("bpmn/hellworld3.png");//设置流程规则图片//发布流程 builder.deploy();}/** * 2.查看流程定义 * id:{key}:{verson}:{随机数} * name:process节点的name相同 * key:process节点的key相同 * version:如果是第一次发布。默认为1。  * 如果是key相同的流程,会在当前最高版本上加1 * @throws Exception */@Testpublic void queryProcessDefinition() throws Exception {RepositoryService repositoryService = processEngine.getRepositoryService();ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();List<ProcessDefinition>  list = query.processDefinitionKey("myProcess")//.processDefinitionId(arg0)//.orderByDeploymentId()//.listPage(arg0, arg1).list();for(ProcessDefinition pd:list){System.out.println("id="+pd.getId()+"--name="+pd.getName()+"---key="+pd.getKey()+"---version="+pd.getVersion());}}/** * 3.流程定义删除 *  *  * @throws Exception */@Testpublic void deleteProcessDefinition() throws Exception {RepositoryService repositoryService = processEngine.getRepositoryService();String deploymentId = "2501";//普通删除    可以删除没有任何关联数据的流程规则,如果当前有一个流程正在执行,则无法删除,删除失败repositoryService.deleteDeployment(deploymentId );//级联删除   可以删除关联流程的所有相关信息,相对暴力,只提供给管理员使用repositoryService.deleteDeployment(deploymentId, true);}/** * 4.查看流程图(获取上传图的输入流) *  * @throws Exception */@Testpublic void viewImages() throws Exception {RepositoryService repositoryService = processEngine.getRepositoryService();String deploymentId = "5001";//通过部署id查出所有的资源List<String> list = repositoryService.getDeploymentResourceNames(deploymentId);String imageName = "";for(String str:list){if(str.endsWith(".png")){System.out.println(str);imageName = str;}}if(imageName!=null){InputStream imInputStream = repositoryService.getResourceAsStream(deploymentId,imageName);FileUtils.copyInputStreamToFile(imInputStream, new File("d://111.png"));}}}


0 0
原创粉丝点击