【转】jBPM4:ForEach的使用--动态设置参与人数
进入到task,其实现在有多个task,是根据join中的multiplicity来确定的。
这些task任务安排的人员在candidate-groups(或者是candidate-users等)中定义。这个例子#{department},就是在foreach节点中,定义的var="department"中的变量名字;
这些任务不是直接分派到用户的,而是需要用户自己进行take的
(通过TaskService.createTaskQuery().candidate(userId).list 可以获得有哪些任务自己是候选者
?? 或者通过TaskService.findGroupTasks(userId)获取有哪些任务是自己加入的组需要完成的,
? 或者在流程xml文件中,直接用assignee,分配给任务完成的人员
)。
3. foreach自动生成的这些Task都完成了,则流程进入到下一步;
?? 如果有部分人员完成,部分人员没有完成,还是可以查到foreach自动生成的所有Execution(通过processInstance.getExecutions()),不过根据任务完成的情况有不同的状态:
?? 如果任务已经完成,则在Task表中已经删除,得到的execution状态是:inactive-join
?? 没有完成的任务,在task中依旧存在,得到的execution状态是 active-concurrent
?
来源:http://hi.baidu.com/%D2%BB%D6%AA%CA%B6%B7%D6%D7%D3/blog/item/fa5cb3b685178def30add1d4.html