Activiti多实例不分配用户

时间:2013-03-07 03:59:27

标签: activiti

我正在尝试设置多实例子进程,它创建了正确的进程数,但它没有分配给任何进程。

我使用一个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。

1 个答案:

答案 0 :(得分:1)

您应该使用activiti:assignee="${assignee}"元素的userTask属性明确设置受理人。顺便说一下,如果仅将子进程用于多实例活动,最好将<multiInstanceLoopCharacteristics>移动到<userTask>并删除子进程元素
Activiti user guide: Multi-instance