Consultar Dataset interno (Colleague) com um filtro utilizando like não retorna dados

Prezados, bom dia.

Estou tento a necessidade de ler o dataset interno de colleague pra fazer um "de/para". Recebo o login do usuário e devo retornar o id dele que esta no fluig.

Exemplo:



Recebo o valor: rodrigo.mostaert
Retorno: meshg6hc059k1232325340522

Pra isso, fiz a seguinte rotina


function obterIdFluigAprovador(loginAprovador){
    // vem pra mim: rodrigo.mostaert
    // preciso retornar: meshg6hc059k1232325340522
    //var valor = loginAprovador.toLowerCase() + '@';
    //var valor = loginAprovador + '@';
    var valor ="rodrigo.mostaert" + '@';
    log.info("filtro: " + valor);

    var filtroEmail = DatasetFactory.createConstraint("mail", valor+"%", valor+"%", ConstraintType.MUST);
    filtroEmail.setLikeSearch(true);
    var filtros = new Array(filtroEmail);

    var dsUsuario = DatasetFactory.getDataset("colleague", null, filtros, null);
    for (var i = 0; i < dsUsuario.RowsCount; i++){
        var retorno = dsUsuario.getValue(i, "colleaguePK.colleagueId");
        log.info("retorno: " + retorno);
        return retorno;;        
    }
    log.info("Não foi encontrado o aprovador: " + loginAprovador);
    return "";
}

o problema é que o registro não esta sendo encontrado, e ele existe, olha abaixo: printColleague.png

Alguém saberia indicar o que esta faltando?

Obs; Preciso filtrar pelo campo mail de colleague.

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

1 curtida

@Otto, coloque o filtro assim pra ver se vai:


var filtroEmail = DatasetFactory.createConstraint("mail", "%"+valor+"%", "%"+valor+"%", ConstraintType.MUST);

Tente agora dessa forma:


c1 = DatasetFactory.createConstraint("mail", "%" + valor + "%" , "%" + valor + "%",  ConstraintType.SHOULD);
c2 = DatasetFactory.createConstraint("login", "%" + valor + "%", "%" + valor + "%",  ConstraintType.SHOULD);
c1.setLikeSearch(true);
c2.setLikeSearch(true);
filtros = new Array (c1, c2);

Olá Gabriel, mesma coisa, não retornou nada.

algo estranho, fiz um teste tem passar o filtro, pra trazer tudo e mesmo assim ainda não retornou nada.

coloquei: var dsUsuario = DatasetFactory.getDataset(“colleague”, null, null, null);

tente fazer dessa forma:


c1 = DatasetFactory.createConstraint("mail", "%" + valor + "%" , "%" + valor + "%",  ConstraintType.SHOULD);
c2 = DatasetFactory.createConstraint("login", "%" + valor + "%", "%" + valor + "%",  ConstraintType.SHOULD);
c1.setLikeSearch(true);
c2.setLikeSearch(true);
filtros = new Array (c1, c2);


OLá @Gabriel, ainda assim nada. Pelo log, pude perceber que ele fez o seguinte filtro: ((U.USER_TYPE <> ‘2’)) AND ( ((UT.EMAIL LIKE ‘%rodrigo.mostaert%’)) OR ((UT.LOGIN LIKE ‘%rodrigo.mostaert%’)) )

sabe o que é aquela condição user_type?

Se o USER_TYPE é igual a 2 o usuário temporário.

Você está fazendo essa consulta no javascript ou no evento de Formulário ou Processo?

Coloque o “rowsCount” com “r” minúsculo

@otto dsUsuario = DatasetFactory.getDataset("colleague", null, null, null) deveria retornar todos os usuarios. Se não retorna, vc deve estar tendo algum erro de js. No console, está aparecendo algum erro?

1 curtida

Olá @Lucas, executei o getDataset sem passar os filtros, olha o resultado do console

https://paste.ofcode.org/Y8Nz5XqbZipmrbd7d6DDNc

Putz, olhando o log agora vi que o rowsCount estava com o R maiusculo. erro meu. funcionou. valeu pessoal

1 curtida