我正在尝试设置多实例子进程,它创建了正确的进程数,但它没有分配给任何进程。
我使用一个java服务任务来获取所有用户
public class ListUsers implements JavaDelegate {
@Override
public void execute(DelegateExecution execution) throws Exception {
String group = (String) execution.getVariable("group");
List<User> lista = execution.getEngineServices().getIdentityService().createUserQuery().memberOfGroup(group).list();
List<String> usuarios = new ArrayList<>();
for (User user : lista) {
usuarios.add(user.getId());
}
execution.setVariable("listaUsuarios", usuarios);
execution.setVariable("listaUsuariosSize", usuarios.size());
}
}
我的多实例定义
<subProcess id="subprocessConfirmacaoPresencaReuniao" name="Confirmação de Presença na Reuniao">
<multiInstanceLoopCharacteristics isSequential="false">
<loopDataInputRef>listaUsuarios</loopDataInputRef>
<inputDataItem name="assignee" />
</multiInstanceLoopCharacteristics>
<startEvent id="starteventConfirmacaoPresencaReuniao" name="Start"></startEvent>
<userTask id="confirmarPresenca" name="Confirmar Presença"></userTask>
</subProcess>
我在该组中有4个用户,它正确启动了4个进程,但未分配给用户。
Variables
NAME VALUE
group consuni
listaUsuarios [admin, cleo, fozzie, kermit]
listaUsuariosSize 4
我做错了什么吗?我正在使用Activiti 5.11。
答案 0 :(得分:1)
您应该使用activiti:assignee="${assignee}"
元素的userTask
属性明确设置受理人。顺便说一下,如果仅将子进程用于多实例活动,最好将<multiInstanceLoopCharacteristics>
移动到<userTask>
并删除子进程元素
Activiti user guide: Multi-instance