Versão atual:

Mecanismo para pegar gestor do requisitante do processo

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: Capturar.PNG 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: Capturar22.PNG

Podem me ajudar com esses dois problemas ?

Agradeço a atenção pessoal. Abraço.

Versão (1):

Ver a versão formatada

Mecanismo para pegar gestor do requisitante do processo

Comentário

new question