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:
Alguém saberia indicar o que esta faltando?
Obs; Preciso filtrar pelo campo mail de colleague.
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