1.部署流程的定义
2.启动流程的实例
3.查看我的任务列表
4.办理任务
5.查看流程(正在执行,还是已经结束)
6.查询历史任务
7.查询历史的流程实例
package com.liming; import java.io.File; import java.io.IOException; 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.RuntimeService; import org.activiti.engine.history.HistoricProcessInstance; import org.activiti.engine.history.HistoricTaskInstance; 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.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.apache.commons.io.FileUtils; import org.junit.Before; import org.junit.Test; public class CreateActivti { private ProcessEngine pe; //创建流程引擎 @Before public void createActivi() { pe = ProcessEngines.getDefaultProcessEngine(); } //部署流程 @Test public void deloy() { //获取仓库服务的实例 RepositoryService repositoryService = pe.getRepositoryService(); DeploymentBuilder db =repositoryService.createDeployment().addClasspathResource("workflow/MyProcess.bpmn").addClasspathResource("workflow/MyProcess.png").name("请假流程"); Deployment dy = db.deploy(); System.out.println(dy.getId()+" "+dy.getName()); } //部署流程定义 @Test public void deloy_zip() { InputStream in = this.getClass().getClassLoader().getResourceAsStream("workflow/MyProcess.zip"); ZipInputStream zipin = new ZipInputStream(in); Deployment dy = pe.getRepositoryService().createDeployment().name("请假流程liming").addZipInputStream(zipin).deploy(); System.out.println(dy.getId()+" "+dy.getName()); } //查询流程定义 @Test public void queryProceeDefinition() { //获取仓库服务对象,查询列表 ProcessDefinitionQuery query =pe.getRepositoryService().createProcessDefinitionQuery(); query.orderByProcessDefinitionVersion().asc(); query.processDefinitionKey("myProcess1"); // query.processDefinitionName(""); List<ProcessDefinition> list= query.list(); for (ProcessDefinition processDefinition : list) { System.out.print("id:"+processDefinition.getId()); System.out.print("name:"+processDefinition.getName()); System.out.print("key:"+processDefinition.getKey()); System.out.print("version:"+processDefinition.getVersion()); System.out.print("resourceName:"+processDefinition.getResourceName()); System.out.println(); } } //删除流程定义 @Test public void deletProceeDefinition() { String id = "801"; RepositoryService service =pe.getRepositoryService(); //正在执行的流程抛出异常 service.deleteDeployment(id); //级连删除,会删除和当前规则相关的所有信息 service.deleteDeployment(id,true); } //查看流程定义流程图 @Test public void show() { String id = "101"; List<String> list = pe.getRepositoryService().getDeploymentResourceNames(id); String img =""; for (String string : list) { System.out.println("img:"+string); if(string.indexOf(".png")>=0) { img = string; } } if(img!= "") { InputStream inputStream = pe.getRepositoryService().getResourceAsStream(id, img); File f = new File("/Users/zhangqinghua/Documents/workspace/"+img); try { FileUtils.copyInputStreamToFile(inputStream, f); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //启动流程实例 @Test public void startProcess() { RuntimeService runtimeService = pe.getRuntimeService(); ProcessInstance pi = runtimeService.startProcessInstanceByKey("myProcess"); System.out.println(pi.getId()+" "+pi.getProcessDefinitionId()); } //查看任务列表 @Test public void queryTask() { String assignee = "李三"; List<Task> list =pe.getTaskService().createTaskQuery().taskAssignee(assignee).orderByTaskCreateTime().desc().list(); for (Task task : list) { System.out.println("ID:"+task.getId()); System.out.println("name:"+task.getName()); System.out.println("createtime:"+task.getCreateTime()); System.out.println("Assignee:"+task.getAssignee()); } } //办理任务 @Test public void complete() { String id = "2201"; pe.getTaskService().complete(id); } //查看流程状态 @Test public void queryProcessState() { String processInstanceId = "2001"; ProcessInstance pi =pe.getRuntimeService().createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); if(pi !=null) { System.out.println("当前流程在"+pi.getActivityId()); } else { System.out.println("当前流程已经结束"); } } @Test public void queryHistoryTask() { String taskAssignee = "李三"; List<HistoricTaskInstance> list = pe.getHistoryService().createHistoricTaskInstanceQuery().taskAssignee(taskAssignee).list(); if(list.size()>0 && list != null) { for (HistoricTaskInstance historicTaskInstance : list) { System.out.println("任务ID"+historicTaskInstance.getId()); System.out.println("流程实例"+historicTaskInstance.getProcessInstanceId()); System.out.println("任务办理"+historicTaskInstance.getAssignee()); System.out.println("开始时间"+historicTaskInstance.getStartTime() +"结束时间:"+ historicTaskInstance.getEndTime()); } } } //查看历史的流程实例 @Test public void queryHisoryProcessInstance() { String processInstanceId = "2001"; HistoricProcessInstance hpi = pe.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); System.out.println("流程定义:"+hpi.getProcessDefinitionId()); System.out.println("流程实例ID:"+hpi.getId()); System.out.println(hpi.getStartTime()+" "+hpi.getEndTime()+" "+hpi.getDurationInMillis()); } }