<?xml version="1.0" encoding="UTF-8"?>
<process name="grouptask" xmlns="http://jbpm.org/4.4/jpdl">
<start name="start1" g="270,48,48,48">
<transition name="to 电脑维修" to="电脑维修" g="-121,-15"/>
</start>
<end name="end1" g="337,317,48,48"/>
<task name="电脑维修" g="269,172,92,52" candidate-users="工程师1,工程师2,工程师3">
<transition name="to end1" to="end1" g="-66,-4"/>
</task>
</process>
public class GroupTaskTest extends BaseJbpm{
@Test
public void testDeploy(){
processEngine.getRepositoryService()
.createDeployment()
.addResourceFromClasspath("cn/itcast/jbpm0909/grouptask/grouptask.jpdl.xml")
.deploy();
}
/**
* 涉及到的表
* jbpm4_participation
* 组任务的候选人在这张表中
* 也是一个临时表
*/
@Test
public void testStartPI(){
processEngine.getExecutionService()
.startProcessInstanceById("grouptask-1");
}
/**
* 根据组任务ID查询候选人
*/
@Test
public void testQueryParticipations(){
List<Participation> pList = processEngine.getTaskService()
.getTaskParticipations("180002");
for(Participation p:pList){
System.out.println(p.getUserId());
}
}
/**
* 根据候选人查询组任务
*/
@Test
public void testQueryTaskByParticipation(){
List<Task> taskList = processEngine.getTaskService()
.findGroupTasks("工程师1");
for(Task task:taskList){
System.out.println(task.getName());
}
}
/**
* 接受任务
* jbpm的API:任何一个人都能执行该任务,并不局限于候选人
*/
@Test
public void testTakeTask(){
processEngine.getTaskService().takeTask("180002", "工程师1");
}
@Test
public void testFinishTask(){
processEngine.getTaskService()
.completeTask("180002");
}
}