一、框架图:
二、执行代码:
package com.itcast.helloworld;
import java.util.List;
import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.task.Task;
import org.junit.Test;
public class HelloWorld {
private static ProcessEngine processEngine;
private String taskId;
static{
processEngine = new Configuration().setResource("jbpm.cfg.xml").buildProcessEngine();
}
//建表
@Test
public void createSchema() throws Exception {
new org.hibernate.cfg.Configuration().configure("jbpm.hibernate.cfg.xml").buildSessionFactory();
}
//1.部署流程定义
@Test
public void deployProcess() throws Exception {
processEngine.getRepositoryService().createDeployment()
.addResourceFromClasspath("helloworld/helloworld.jpdl.xml")
.addResourceFromClasspath("helloworld/helloworld.png")
.deploy();
}
//2.启动流程实例
@Test
public void startProcess() throws Exception {
processEngine.getExecutionService().startProcessInstanceByKey("helloworld");
}
//3.查询我的个人任务列表
@Test
public void findMyTaskList() throws Exception {
String userId1 = "员工";
String userId2 = "部门经理";
String userId3 = "总经理";
//查询
System.out.println("---员工--------------");
List<Task> taskList = processEngine.getTaskService().findPersonalTasks(userId1);
for(Task task : taskList){
taskId = task.getId();
System.out.println("id="+taskId+",name="+task.getName()+",assigne="+task.getAssignee());
}
System.out.println("---部门经理--------------");
List<Task> departList = processEngine.getTaskService().findPersonalTasks(userId2);
for(Task task : departList){
System.out.println("id="+task.getId()+",name="+task.getName()+",assigne="+task.getAssignee());
}
System.out.println("---总经理--------------");
List<Task> totalList = processEngine.getTaskService().findPersonalTasks(userId3);
for(Task task : totalList){
System.out.println("id="+task.getId()+",name="+task.getName()+",assigne="+task.getAssignee());
}
}
//4.办理任务
@Test
public void completeTask() throws Exception {
String taskId1 = "30002";//员工
String taskId2 = "40001";//部门经理
String taskId3 = "50001";//总经理
processEngine.getTaskService().completeTask(taskId3);
}
}