Ola Amigos,
Desenvolvi um DS sincronizado, mas de forma alguma consigo aplicar o constraints ..já vasculhei a documentação de cima a baixo ... quando eu chamo o DS ele nem passa pelo 'createDataset' .. o que acham que pode estar errado ?
function defineStructure() {
addColumn("EMPRESA");
addColumn("COD_CBO");
addColumn("DESCRICAO");
setKey(["EMPRESA", "COD_CBO", "DESCRICAO"]);
addIndex(["COD_CBO"]);
addIndex(["COD_CBO", "DESCRICAO"]);
}
function onSync(lastSyncDate) {
var servicoURL = "http://meusrv/FUNCAO_C8Z?cUniEmp=01";
var myApiConsumer = oauthUtil.getGenericConsumer("","", "", "");
var result = myApiConsumer.get(servicoURL);
var ds_cbo = DatasetBuilder.newDataset();
if(result== null || result.isEmpty()){
ds_cbo.addOrUpdateRow(["NOK", "Erro ao comunicar ao consultar o BANCOS"]);
}else{
try{
var objdata = JSON.parse(result);
for (var obj in objdata){
ds_cbo.addOrUpdateRow(["01" ,String(objdata[obj].Cod_Cbo), objdata[obj].Descricao]);
};
} catch (e) {
ds_cbo.addOrUpdateRow(["NOK", e.toString()]);
}
}
return ds_cbo;
}
function createDataset(fields, constraints, sortFields) {
log.info(">>> entrando no ds");
//Cria as colunas
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("EMPRESA");
dataset.addColumn("COD_CBO");
dataset.addColumn("DESCRICAO");
var datasetPrincipal = DatasetFactory.getDataset("ds_get_cbo_jorn", null, null, null);
for (var i = 0; i < datasetPrincipal.rowsCount; i++) {
log.info(">>>" + datasetPrincipal.getValue(i, "COD_CBO"));
}
return dataset;
}
Quando você sincroniza um dataset ele não executa mais o createDataset, somente o onSync conforme o agendamento configurado. Qual constraint você está tentando executar? Depois de sincronizado a constraint é executada diretamente como um "where" na tabela do dataset sincronizado
— Diogo Boegershausen 23 de Jan de 2019Ola Diego, eu preciso passar uma constrain por um campo tipo 'zoom' .. então minha ideia seria criar um DS jornalizado que seria atualizado toda a noite e aproveitar esse mesmo DS passando um filtro por um campo do tipo 'zoom'
— William 29 de Jan de 2019Neste caso Diego, eu teria que criar um DS jornalizado e depois criar um DS normal com as constraints que eu preciso mas apontando para este DS jornalizado ? essa seria a lógica ?
— William 29 de Jan de 2019vc pode trazer todos os dados sem constraint, depois quando vc chama o dataset vc passa a constraint como se fosse um dataset interno
— Robson Eufrásio Stirle 07 de Feb de 2019Ola Robson, exatamente isso que tinha imaginado ... vou precisar criar um DS jornalizado para ele espelhar os dados nas tabelas do fluig, e a partir dai criar um outro DS 'normal' apontando para esse DS jornalizado e ai aplicando os filtro, é correto isso ?!
— William 08 de Feb de 2019vc pode criar um dataset sincronizado trazendo todos os registros. depois na sua função que chama o dataset vc pode usar esse mesmo dataset sincronizado. vc nao precisa criar constraints dentro do dataset sincronizado, pois ele funciona da mesma forma que um dataset interno do fluig, ou seja, todos os campos viram constraints de forma automatica, ou seja, vc pode fazer filtros no dataset sincronizado em qualquer campo desejado, sem necessidade de criar um segundo dataset igual vc comentou
— Robson Eufrásio Stirle 08 de Feb de 2019Ola Robson, muito obrigado .... com seu esclarecimento consegui fazer o filtro funcionar ..
— William 13 de Feb de 2019