文章目录
- 8.10 组任务
- 8.10.1 组任务的分配
- 8.10.1.1 写死的方式指定
- 8.10.1.2 实现AssignmentHandler接口指定
- 8.10.2 查询自己的组任务
- 8.10.3 办理自己的组任务
- 8.10 组任务
- 8.10.1 组任务的分配
- 8.10.1.1 写死的方式指定
- 8.10.1.2 实现AssignmentHandler接口指定
- 8.10.2 查询自己的组任务
- 8.10.3 办理自己的组任务
8.10 组任务
8.10.1 组任务的分配
8.10.1.1 写死的方式指定
该方式不推荐
人名与人名之间用 英文逗号 隔开。
8.10.1.2 实现AssignmentHandler接口指定
在.xml文件配置如下:
<task name="组任务2" g="347,280,92,52"><assignment-handler class="com.snow.config.Group11AssignmentHandler"></assignment-handler><transition name="to end1" to="end1" g="-50,-22"/>
</task>
类实现:
public class Group11AssignmentHandler implements AssignmentHandler {private static final long serialVersionUID = 11L;@Overridepublic void assign(Assignable assignable, OpenExecution execution) throws Exception {// 获取 该分组任务的 候选人 ooo_task2_users流程变量是在流程走到该节点前指定的String vairableName = "ooo_task2_users"; String[] users = (String[]) execution.getVariable(vairableName);// 将 人员 分配 给 组任务for(String user : users){assignable.addCandidateUser(user);}}
}
8.10.2 查询自己的组任务
// 查询自己的组任务
@Test
public void findGroupTasksByUser(){String user = "小明";List<Task> tasks = processEngine.getTaskService().createTaskQuery().candidate(user).list();System.out.println(tasks.size());for(Task task : tasks){System.out.println(task.getId() + task.getName() + task.getAssignee());}
}
8.10.3 办理自己的组任务
同 8.7.2
getExecutionService().getVariables(executionId, variableNames1);// 同上processEngine.getTaskService().getVariable(taskId, variableName);processEngine.getTaskService().getVariableNames(taskId);Set<String> variableNames2 = null;processEngine.getTaskService().getVariables(taskId, variableNames2);
}
所有的流程变量 都在 jbpm4_variable 表中可以查看。
8.10 组任务
8.10.1 组任务的分配
8.10.1.1 写死的方式指定
该方式不推荐
人名与人名之间用 英文逗号 隔开。
8.10.1.2 实现AssignmentHandler接口指定
在.xml文件配置如下:
<task name="组任务2" g="347,280,92,52"><assignment-handler class="com.snow.config.Group11AssignmentHandler"></assignment-handler><transition name="to end1" to="end1" g="-50,-22"/>
</task>
类实现:
public class Group11AssignmentHandler implements AssignmentHandler {private static final long serialVersionUID = 11L;@Overridepublic void assign(Assignable assignable, OpenExecution execution) throws Exception {// 获取 该分组任务的 候选人 ooo_task2_users流程变量是在流程走到该节点前指定的String vairableName = "ooo_task2_users"; String[] users = (String[]) execution.getVariable(vairableName);// 将 人员 分配 给 组任务for(String user : users){assignable.addCandidateUser(user);}}
}
8.10.2 查询自己的组任务
// 查询自己的组任务
@Test
public void findGroupTasksByUser(){String user = "小明";List<Task> tasks = processEngine.getTaskService().createTaskQuery().candidate(user).list();System.out.println(tasks.size());for(Task task : tasks){System.out.println(task.getId() + task.getName() + task.getAssignee());}
}
8.10.3 办理自己的组任务
同 8.7.2