3.6.4 Local 变量测试 2
在部门经理审核、总经理审核、人事经理审核时设置 local 变量,可通过 historyService 查询每个历史任务时将流程变量的值也查询出来。
代码如下:
代码语言:javascript复制// 创建历史任务查询对象
HistoricTaskInstanceQuery historicTaskInstanceQuery =
historyService
.createHistoricTaskInstanceQuery();
// 查询结果包括 local变量
historicTaskInstanceQuery.includeTaskLocalVariables();
for (HistoricTaskInstance historicTaskInstance : list) {
System.out.println("==============================");
System.out.println(" 任 务 id : "
historicTaskInstance.getId());
System.out.println(" 任 务 名 称 : "
historicTaskInstance.getName());
System.out.println(" 任 务 负 责 人 : "
historicTaskInstance.getAssignee());
System.out.println(" 任 务 local 变 量 : "
historicTaskInstance.getTaskLocalVariables());
}
注意:查询历史流程变量,特别是查询 pojo 变量需要经过反序列化,不推荐使用。
第4章 组任务
4.1 Candidate-users 候选人
4.1.1需求
在流程定义中在任务结点的 assignee 固定设置任务负责人,在流程定义时将参与者固定设置在.bpmn 文件中,如果临时任务负责人变更则需要修改流程定义,系统可扩展性差。
针对这种情况可以给任务设置多个候选人,可以从候选人中选择参与者来完成任务。
设置任务候选人
在流程图中任务节点的配置中设置 candidate-users(候选人),多个候选人之间用逗号分开。
查看 bpmn 文件:
我们可以看到部门经理的审核人已经设置为 zhangsan,lishi 这样的一组候选人,可以使用activiti:candiateUsers=”用户 1,用户 2,用户 3”的这种方式来实现设置一组候选人。