我試圖設置多實例子進程,它創建了正確的進程數量,但它不分配給任何人。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。
可能是我誤會了,但你想分配子到用戶?在你使用「受託人」變量的地方提供代碼 – ATMTA 2013-03-07 06:44:08
@ATMTA嗯,我不使用這個變量,它不應該由multiInstanceLoop自動分配嗎?我想這是我做錯的地方然後 – dextervip 2013-03-07 15:38:33
Activiti不是那麼聰明的自動分配任務,所以你應該明確地設置受讓人使用activiti:assignee =「$ {assignee}」 userTask元素的屬性。順便說一下,如果您僅將子進程用於多實例活動,則最好將移動到並刪除子進程元素 –
ATMTA
2013-03-07 19:03:55