Atividade de Processo com dois responsáveis

Bom dia.

Estamos tentando criar um processo para abertura e atendimento de chamados.

Em determinada atividade do processo, chamada Atendimento, ambos atendente e solicitante precisam ser capazes de enviar o processo (que retorna para a mesma atividade por um direcionamento, para "atualizar" o formulário com os acompanhamentos).

Para fazer isso, tentei utilizar a atividade conjunta sem seleção de colaborador, junto com um mecanismo de atribuição customizado:


function resolve(process,colleague){
    var userList = new java.util.ArrayList();

    userList.add(hAPI.getCardValue("respAtt"));
    userList.add(hAPI.getCardValue("respAber"));

    return userList;
}

Sendo "respAtt" e "respAber" os campos com as matriculas dos usuários.

Até essa parte, funcionou corretamente. Ao chegar na atividade "Atendimento", ambos os usuários conseguem enviar o processo. Porém, o que esta acontecendo é que, quando um dos usuários envia o processo, o outro perde o acesso.

Parece ser uma configuração do consenço. Tentei utilizar o evento calculateAgreement, com o seguinte:


function calculateAgreement(currentState, agreementData) {
    agreementData.put("currentPercentage", 50);
    agreementData.put("currentDestState", 4);
    agreementData.put("currentDestUsers", hAPI.getCardValue("respAtt") );
    agreementData.put("currentDestUsers", hAPI.getCardValue("respAber") );
}

Também tentei com a porcentagem de 100 para apenas um usuário, mas sem sucesso. Continua tirando o acesso do outro. Atualmente, nestes testes, esta configurado um consenso de 50 na atividade.

Alguém tem alguma ideia como realizar este procedimento de dois usuários poderem enviar a atividade? O consenso não é necessário. Verifiquei a possibilidade de criar grupos dinâmicos, mas o problema é o caso de alguém assumir a tarefa e esquecer de enviar, bloqueando para o outro.

UPDATE: Fazendo os testes, parece que o problema esta sendo no agreementData.put("currentDestUsers", user). Parece que o mesmo não esta conseguindo referenciar os usuários corretamente com os valores inseridos.

É possível colocar o mecanismo customizado como o próximo usuário?

Foi tentado:


agreementData.put("currentDestUsers", hAPI.getCardValue("respAtt") );
agreementData.put("currentDestUsers", hAPI.getCardValue("respAber") );


agreementData.put("currentDestUsers", [hAPI.getCardValue("respAtt"), hAPI.getCardValue("respAber")] );


var userList = new java.util.ArrayList();
userList.add(hAPI.getCardValue("respAtt"));
userList.add(hAPI.getCardValue("respAber"));

agreementData.put("currentDestUsers", userlist );

Consegui solucionar o problema!

A grande questão era o modo como a função recebe os parâmetros de usuários.

Para passar uma lista com mais de um usuários, todos eles devem ser enviados como uma string separada por virgulas:


agreementData.put("currentDestUsers", hAPI.getCardValue("respAber") + "," + hAPI.getCardValue("respAtt"));

Então, conforme escrito acima, ele verifica o valor do campo "respAber", depois coloca uma virgula, depois verifica o segundo campo "respAtt". No final, ficou a seginte string: "0d4abfe6100d4a50b1df9b38c09f90dd,c17e2512eb9711ea8f190a5864604527", que atribuiu a tarefa as duas matriculas.