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!