•
流程图
![](https://img-my.csdn.net/uploads/201303/24/1364058713_4187.jpg)
![](https://img-my.csdn.net/uploads/201303/24/1364058713_4187.jpg)
•
建表并创建流程引擎对象(核心对象)
// 建表
@Test
public void testCreateSchema() { // hbm2ddl.auto=update
new org.hibernate.cfg.Configuration().configure("jbpm.hibernate.cfg.xml").buildSessionFactory();
}
private ProcessEngine processEngine = new Configuration().setResource("jbpm.cfg.xml").buildProcessEngine();
// 1,部署流程定义
@Test
public void testDeployProcessDefinition() throws Exception {
processEngine.getRepositoryService()//
.createDeployment()//
.addResourceFromClasspath("helloworld/helloworld.jpdl.xml")//
.addResourceFromClasspath("helloworld/helloworld.png")//
.deploy();
}
// 2,启动流程实例
@Test
public void testStartProcessInstance() throws Exception {
ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("helloworld");
System.out.println("流程实例启动成功!id="+pi.getId() +
"name="+pi.getName() +
"key="+pi.getKey()+
"getProcessDefinitionId="+pi.getProcessDefinitionId());
}
// 3,查询我的未办理的任务列表
@Test
public void testFindMyTaskList() throws Exception {
// 查询
// String userId = "员工";
// String userId = "部门经理";
String userId = "总经理";
List<Task> taskList = processEngine.getTaskService().findPersonalTasks(userId);
// 显示
System.out.println("=========== 【" + userId + "】的任务列表 ===========");
for (Task task : taskList) {
System.out.println("id=" + task.getId() + ", name=" + task.getName() + ", assignee=" + task.getAssignee());
}
}
// 4,办理任务
@Test
public void testCompleteTask() throws Exception {
String taskId = "50001";
processEngine.getTaskService().completeTask(taskId);
}