jbpm任务分为个人任何和组任务(具体怎么设置见 jbpm动态指定任务对应的用户 博客)
个人任务:任务属于一个人,该任务已经分配到指定的某一个人,可以直接执行任务(前几个博客针对的都是个人任务,不在这再做详解)。
组任务:任务属于一个组,这个组里所有人都可以执行该任务,但执行前提是必须认领该任务将该任务变为个人任务,认领完之后才能执行,可以在认领任务后做退回或转让操作(转让的用户也必须在对应的组里)。
设置组任务:
1:部署之后做启动操作(动态设置用户组流程变量)
@Test
public void start() {
Map<String, String> map = new HashMap<String, String>();
map.put("userids", "lily,lucy,dim,tom,carry");
pe.getExecutionService().startProcessInstanceById("financeGroupApprove-1", map);
}
这时在数据库里会有一个task但对应的分配用户为空
2:carry用户去认领任务
@Test
public void accept()
{
pe.getTaskService().takeTask("560003", "carry");
}
这时数据库task对应的分配用户为carry
3:当carry用户不想执行该任务想转移至lucy用户。
@Test
public void assign()
{
pe.getTaskService().assignTask("560003", "lucy");
}
这时task表里对应的用户变为lily
4:lucy不想执行任务也不想转移想直接退回任务
@Test
public void returnback()
{
pe.getTaskService().assignTask("560003", null);
}
这时数据库task对应的分配用户变为空