Comparar grupo do usuário logado

Pessoal, preciso verificar os grupos que o usuário logado está inserido, para definir o fluxo do processo. O caso é o seguinte, se o usuário logado fizer parte do grupo "aprovadores" eu retorno em uma variável x para valida-la no exclusivo. Porem não estou conseguindo montar a logica pra fazer essa comparação. Estou tentando consultar o dataset collegueGroup, mas não sei qual função usar, e nem em qual evento posso fazer essa validação pra usar em meu exclusivo. Andei dando uma olhada e estava seguindo o raciocinio:

function verificaUser(process, colleague) { var userLog = getValue("WKUser") var userList = new java.util.ArrayList(); var cGrupo ==DatasetFactory.createConstraint("colleagueGroupPK.groupId", setor, setor, ConstraintType.MUST); var constraintsGroup = new Array(cGrupo);

var colleagues = DatasetFactory.getDataset("colleagueGroup", null, constraintsGroup, null);

for (var i = 0; i < colleagues.values.length; i++) { //Adicionando usuário como opção de responsável userList.add(colleagues.getValue(i, "colleagueGroupPK.colleagueId")); } return userList; }

Mas também nao sei como verifico se esse ID do usuario está na lista e possui em seu colleagueGroupPK.groupId a linha "aprovadores"

Danielle,

você pode procurar pela matrícula do usuário em questão e o código do grupo. Se a função retornar maior do que 0, é pq ele está dentro do grupo, caso contrário, não está.



/*
 * Função verifica se usuário está dentro de determinado grupo;
 * A consulta é feita no dataset colleagueGroup;
 * O filtro é o nome do grupo e matrícula;
 */

function busca_users_grupo(grupo,matricula)
{
   var filter = DatasetFactory.createConstraint("colleagueGroupPK.groupId", grupo, grupo, ConstraintType.MUST);
   var filter2 = DatasetFactory.createConstraint("colleagueGroupPK.colleagueId", matricula, matricula, ConstraintType.MUST);
   var constraints   = new Array(filter,filter2);
   var datasetGrupos = DatasetFactory.getDataset("colleagueGroup", null, constraints, null);
   return datasetGrupos;
}

No caso, você faria a chamada da função da seguinte forma:



var result = busca_users_grupo("aprovadores",getValue("WKUser"));

if(result.rowsCount > 0)
   ....
else
   ....

Muito obrigada Gabriel! Funcionou perfeitamente.

Olá pessoal. Sabem me dizer onde eu coloco a função “busca_users_grupo” num formulário de processo? E onde consigo chamar essa função? Obrigado!

@Iago, você implementa no displayFields, ele por si só já carrega a função ao executar um solicitação do processo.

Deu certo. Muito obrigado!