0

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

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

4

1 回答 1

1

您应该使用元素activiti:assignee="${assignee}"的属性      显式设置受让人。userTask顺便说一句,如果您仅将子流程用于多实例活动,最好<multiInstanceLoopCharacteristics>进入<userTask>并删除子流程元素
     Activiti 用户指南:多实例

于 2013-03-07T19:19:36.607 回答