1.流程图
2.建表并创建流程引擎对象(核心对象)--->ProcessEngine
1 @Test 2 public void testProcessEngine(){ 3 // 获取流程引擎 4 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); 5 System.out.println(processEngine); 6 } 7
3.部署流程定义
1 public class Sha { 2 ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine(); 3 //流程部署定义(从classpath) 4 @Test 5 public void li(){ 6 Deployment deploy =processEngine.getRepositoryService()//与流程定义和部署对象相关的servise; 7 .createDeployment()//创建一个部署对象 8 .name("张三") 9 .addClasspathResource("diagrams/Myboy.bpmn")//从classpath的资源中加载,一次只能加载一次 10 .addClasspathResource("diagrams/Myboy.png")//从classpath的资源中加载,一次只能加载一次 11 .deploy(); 12 System.out.println("部署ID:"+deploy.getId()); 13 System.out.println("部署名称:"+deploy.getName()); 14 }
4.启动流程实例
1 @Test 2 public void ki(){ 3 //流程定义的key 4 String processDefinitionKey ="myBoy"; 5 ProcessInstance pi = processEngine.getRuntimeService()//与正在执行的流程实例和执行对象相关的Service 6 .startProcessInstanceByKey(processDefinitionKey ); 7 //使用流程定义的key启动流程实例,key对应的Myboy.bpmn文件中id的属性值 8 System.out.println("流程实例ID:"+pi.getId());//流程实例ID 9 System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID 10 }
5.查看当前人的个人任务
1 @Test 2 public void ji(){ 3 String assignee ="李四"; 4 List<Task> list = processEngine.getTaskService()//与正在执行的任务管理相关的service 5 .createTaskQuery()//创建任务查询对象 6 .taskAssignee(assignee)//指定个人任务查询,指定办理人 7 //有时候肯定不止一个请假,所以它返回的是个列表 8 .list(); 9 if(list!=null&& list.size()>0){ 10 for(Task task: list){ 11 System.out.println("任务ID:"+task.getId()); 12 System.out.println("任务名称:"+task.getName()); 13 System.out.println("创建时间:"+task.getCreateTime()); 14 System.out.println("办理人:"+task.getAssignee()); 15 System.out.println("流程实例ID:"+task.getProcessInstanceId()); 16 System.out.println("执行对象ID:"+task.getExecutionId()); 17 System.out.println("流程定义ID:"+task.getProcessDefinitionId()); 18 System.out.println("######################"); 19 } 20 } 21 }
6.办理任务
1 public void hi(){ 2 //任务ID 3 String taskId = "402"; 4 processEngine.getTaskService()//与正在执行的任务管理相关的service 5 .complete(taskId); System.out.println("完成任务:任务ID:"+taskId); 6 }