Estou querendo fazer um mecanismo customizado que consiga pegar o ID do gestor do requisitante do processo, podem me ajudar?
Como estou fazendo: Eu pego o id do Requisitante depois o setor do requisitante depois pego os usuários desse setor e depois pego o usuário desse setor que tem o papel GER.
Meu MECCustomizado esta assim:
function resolve(process,colleague){
var userList = new java.util.ArrayList();
//-------------------------------------------------Pegando Id do Requisitante---------------------------------------------------------
var numeroDoProcesso = getValue("WKNumProces");
var c1 = DatasetFactory.createConstraint("workflowProcessPK.processInstanceId", numeroDoProcesso, numeroDoProcesso, ConstraintType.MUST);
var constraints = new Array(c1);
var campos = new Array("requesterId")
var dataset = DatasetFactory.getDataset("workflowProcess", campos, constraints, null);
for(var a = 0; a < dataset.rowsCount; a++) {
// Pegando o ID do Requisitante.
var requisitante = (dataset.getValue(a, "requesterId"));
//-----------------------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------Pegando setor do Requisitante---------------------------------------------------------
var c2 = DatasetFactory.createConstraint("colleagueGroupPK.colleagueId", requisitante, requisitante, ConstraintType.MUST);
var constraints2 = new Array(c2);
var campos2 = new Array("colleagueGroupPK.groupId")
var dataset2 = DatasetFactory.getDataset("colleagueGroup", campos2, constraints2, null);
for(var b = 0; b < dataset2.rowsCount; b++) {
//Pegando o Setor do Requisitante
var setorDoRequisitante = (dataset2.getValue(b, "colleagueGroupPK.groupId"));
if (setorDoRequisitante != "DefaultGroup-1") {
//-----------------------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------Pegando usuários do setor do Requisitante---------------------------------------------------------
var c3 = DatasetFactory.createConstraint("colleagueGroupPK.groupId", setorDoRequisitante, setorDoRequisitante, ConstraintType.MUST);
var constraints3 = new Array(c3);
var campos3 = new Array("colleagueGroupPK.colleagueId")
var dataset3 = DatasetFactory.getDataset("colleagueGroup", campos3, constraints3, null);
for(var c = 0; c < dataset3.rowsCount; c++) {
usuario = dataset3.getValue(c, "colleagueGroupPK.colleagueId");
var c4 = DatasetFactory.createConstraint("workflowColleagueRolePK.colleagueId", usuario, usuario, ConstraintType.MUST);
var constraints4 = new Array(c4);
var campos4 = new Array("workflowColleagueRolePK.colleagueId", "workflowColleagueRolePK.roleId")
var dataset4 = DatasetFactory.getDataset("workflowColleagueRole", campos4, constraints4, null);
for(var d = 0; d < dataset4.rowsCount; d++) {
var papel = (dataset4.getValue(d, "workflowColleagueRolePK.roleId"));
if(papel == "admin") {
userList.add(dataset4.getValue(d, "workflowColleagueRolePK.colleagueId"));
}
}
}
}
}
}
return userList;
}
Estou com dois problema:
O primeiro é: Esse mecanismo só está pegando o setor "DefaultGroup-1" que é o padrão fluig e não o setor do usuário mesmo.
O segundo é: Se eu acrescentar um else no if do setor:
else {
userList.add('NULLPE001');
userList.add('OPPRI002');
}
Ele irá pegar esses dois usuários e no momento de enviar o fluig irá me mostrar essa tela: Que é uma tela diferente da normal e sem nenhum usuário mas, se eu clicar em "Descartar" e clicar em enviar novamente ele irá me mostrar a tela normal com os dois usuários do else:
Podem me ajudar com esses dois problemas ?
Agradeço a atenção pessoal. Abraço.