1. Definition of Deployment Process
2. An instance of the startup process
3. View my task list
4. Handle tasks
5. View the process (in execution, or has ended)
6. Query historical tasks
7. Process instance of query history
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 on; //create process engine @Before public void createActivi() { pe = ProcessEngines.getDefaultProcessEngine(); } //deployment process @Test public void deloy() { //Get the instance of the warehouse service 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()); } //deployment process definition @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("Leave process liming").addZipInputStream(zipin).deploy(); System.out.println(dy.getId()+" "+dy.getName()); } // query process definition @Test public void queryProceeDefinition() { //Get the warehouse service object, query the list 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(); } } // delete the process definition @Test public void deletProceeDefinition() { String id = "801"; RepositoryService service = pe.getRepositoryService (); //The executing process throws an exception service.deleteDeployment(id); //Cascade deletion will delete all information related to the current rule service.deleteDeployment(id,true); } //View the process definition flowchart @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 (); } } } // start the process instance @Test public void startProcess() { RuntimeService runtimeService = on.getRuntimeService (); ProcessInstance pi = runtimeService.startProcessInstanceByKey("myProcess"); System.out.println(pi.getId()+" "+pi.getProcessDefinitionId()); } //View the task list @Test public void queryTask() { String assignee = "Li San"; 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()); } } // handle the task @Test public void complete() { String id = "2201"; pe.getTaskService().complete(id); } //check process status @Test public void queryProcessState() { String processInstanceId = "2001"; ProcessInstance pi =pe.getRuntimeService().createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); if(pi !=null) { System.out.println("The current process is"+pi.getActivityId()); } else { System.out.println("The current process has ended"); } } @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("Process instance"+historicTaskInstance.getProcessInstanceId()); System.out.println("Task handling"+historicTaskInstance.getAssignee()); System.out.println("start time"+historicTaskInstance.getStartTime() +"end time:"+ historicTaskInstance.getEndTime()); } } } //View historical process instances @Test public void queryHisoryProcessInstance() { String processInstanceId = "2001"; HistoricProcessInstance hpi = pe.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); System.out.println("Process definition:"+hpi.getProcessDefinitionId()); System.out.println("Process instance ID:"+hpi.getId()); System.out.println(hpi.getStartTime()+" "+hpi.getEndTime()+" "+hpi.getDurationInMillis()); } }