如图 将dpmn文件和png文件打包成一个zip
java代码
package cn.et.db;
import java.io.InputStream;
import java.util.zip.ZipInputStream;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.junit.Test;
public class Db {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
/**
* 部署定义流程(读取zip)
*/
@Test
public void deploymentProcessDefinition_zip(){
/**
* this.getClass()当前类
* getClassLoader()类加载器
* getResourceAsStream("")从classpath中获取资源
*/
InputStream in=this.getClass().getClassLoader().getResourceAsStream("diagrams/helloworld.zip");
ZipInputStream zipInputStream = new ZipInputStream(in);
//流程定义和部署对象相关的service
RepositoryService repositoryService = processEngine.getRepositoryService();
//创建一个部署对象
DeploymentBuilder createDeployment = repositoryService.createDeployment();
createDeployment.name("hello activiti");
//从classpath下加载资源,一次只能加载一个文件
DeploymentBuilder addClasspathResource = createDeployment.addZipInputStream(zipInputStream);
//完成部署
Deployment deploy = addClasspathResource.deploy();
System.out.println("部署id"+deploy.getId());
System.out.println("部署名称"+deploy.getName());
}
}
查询定义流程
package cn.et.db;
import java.io.InputStream;
import java.util.List;
import java.util.zip.ZipInputStream;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.junit.Test;
public class Db {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
/**
* 查询定义流程
*/
@Test
public void findProcessDefinition(){
//流程定义和部署相关的service
RepositoryService repositoryService = processEngine.getRepositoryService();
//创建一个流程定义的查询
ProcessDefinitionQuery createProcessDefinitionQuery = repositoryService.createProcessDefinitionQuery();
//createProcessDefinitionQuery.deploymentId(deploymentId)使用对象部署id查询
//createProcessDefinitionQuery.processDefinitionId(processDefinitionId);使用流程定义的id查询
//createProcessDefinitionQuery.processDefinitionKey(processDefinitionKey);使用流程定义的key查询
//createProcessDefinitionQuery.processDefinitionNameLike(processDefinitionNameLike);使用流程定义的名称模糊查询
//createProcessDefinitionQuery.processDefinitionKey(processDefinitionKey).list();返回一个集合
//createProcessDefinitionQuery.processDefinitionId(processDefinitionId).singleResult();返回唯一结果集
ProcessDefinitionQuery desc = createProcessDefinitionQuery.orderByProcessDefinitionVersion().desc();
List<ProcessDefinition> list = desc.list();
if(list!=null&&list.size()>0){
for(ProcessDefinition ProcessDefinition:list){
System.out.println("流程定义id"+ProcessDefinition.getId());
System.out.println("流程定义名称"+ProcessDefinition.getName());
}
}
}
}
删除定义流程
package cn.et.db;
import java.io.InputStream;
import java.util.List;
import java.util.zip.ZipInputStream;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.junit.Test;
public class Db {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
/**
* 删除定义流程
*/
@Test
public void deleteProcessDefinition(){
/**
* 不带级联删除
* 只能删除没有启动的流程 ,流程启动无法删除
*/
//processEngine.getRepositoryService().deleteDeployment("1");
//可以删除任何流程
processEngine.getRepositoryService().deleteDeployment("20001",true);
System.out.println("ok");
}
}
SELECT * FROM `act_re_procdef` #流程定义表
SELECT * FROM `act_re_deployment` #部署对象表
SELECT * FROM `act_ge_bytearray` #资源文件表