Consultar Dataset Interno com filtro passado por outro Dataset.

Olá! Eu construí um dataset interno que faz integração com o Datasul. Ele está funcionando perfeitamente e grava as informações no BD do Fluig. Agora preciso usar esse dataset para retornar informações conforme filtros passados por outro dataset. Essa parte estou tendo dificuldade.

Nunca fiz nada neste sentido. Minhas alternativas não tem dado muito certo. Alguém pode me ajudar? Podem me mandar um exemplo deste tipo de Consulta?

Segue o meu dataset. Muito provável que o meu erro está no retorno da função listaitens

var newDataset = DatasetBuilder.newDataset();

    var cdEmp          = '';     
    var cdEstabRequis  = '';  
    var cdCCustoRequis = '';
    var cdEstabAtend   = '';
    var itCod          = '';
    var itDesc           = '';
    var QtdDispEstoq   = '';
    var QtdMax         = '';
    var cdGrEstRequis  = '';
    var cdFmEstRequis  = '';
    var Un               = '';
    var cdUnidNeg       = '';
    var desUnidNeg        = '';
    var cdNatDesp       = '';
    var cdUtiliz       = '';
    var desUtiliz       = '';
    var ctCodigo       = '';
    var descCt            = '';
    var QtDiasAtend       = '';
    var URLImagem       = '';


     for (var i = 0; i < constraints.length; i++) {
        if (constraints[i].fieldName == "EMPREQUIS") {
            cdEmp           = constraints[i].initialValue;
        }
        if (constraints[i].fieldName == "ESTABREQUIS") {
            cdEstabRequis = constraints[i].initialValue;
        }

        if (constraints[i].fieldName == "CCUSTOREQUIS") {
            cdCCustoRequis = constraints[i].initialValue;
        }
        if (constraints[i].fieldName == "GRESTOQOREQUIS") {
            cdGrEstRequis  = constraints[i].initialValue;
        }
        if (constraints[i].fieldName == "FMESTOQOREQUIS") {
            cdFmEstRequis  = constraints[i].initialValue;
        }

    }     
     log.info(cdEmp + cdEstabRequis + cdCCustoRequis + cdGrEstRequis + cdFmEstRequis + URLImagem);



    newDataset.addColumn("ep_codigo");
    newDataset.addColumn("cod_estabel");
    newDataset.addColumn("cod_estabel_atend");
    newDataset.addColumn("sc_codigo");
    newDataset.addColumn("it_codigo");
    newDataset.addColumn("descricao");
    newDataset.addColumn("qtd_disp_estoq");
    newDataset.addColumn("qtd_max");
    newDataset.addColumn("cod_grupo_estoque");
    newDataset.addColumn("cod_familia_estoque");
    newDataset.addColumn("un");
    newDataset.addColumn("cod_unid_negoc");
    newDataset.addColumn("des_unid_negoc");
    newDataset.addColumn("cd_nat_desp");
    newDataset.addColumn("cod_utiliz");
    newDataset.addColumn("des_utiliz");
    newDataset.addColumn("ct_codigo");
    newDataset.addColumn("qtd_dias_atend");
    newDataset.addColumn("url_imagem");


    var cdEmpJson                = new String(cdEmp);
    var cdEstabRequisJson        = new String(cdEstabRequis);
    var cdCCustoRequisJson        = new String(cdCCustoRequis);
    var cdGrEstRequisJson        = new String(cdGrEstRequis);    
    var cdFmEstRequisJson        = new String(cdFmEstRequis);
    var cdEstabAtendJson        = new String(cdEstabAtend);


    var records = listaItens(cdEmpJson,cdEstabRequisJson,cdEstabAtendJson,cdCCustoRequisJson,cdGrEstRequisJson,cdFmEstRequisJson,itCod, itDesc, QtdDispEstoq,QtdMax,Un,
               cdUnidNeg,desUnidNeg,cdNatDesp,cdUtiliz,desUtiliz,ctCodigo,descCt,QtDiasAtend,URLImagem);

    var sqlLimit = 0;
    var sqlLimitAux = 0;

    log.info('voltei');

    if(constraints!=null && constraints.length > 0){

        if(constraints.length == 5 && constraints[4].fieldName == "sqlLimit"){

            for(var i = 0; i < records.records.length; i++) {
                var row = [];
                for(var j = 0; j < records.fields.length; j++) {
                  row.push(records.records[i][records.fields[j].name]);
                }

                newDataset.addRow(row);
            }
        }else{


            for(var a=0; a<records.records.length; a++){

                for (var b=0; b<constraints.length; b++){

                    if (constraints[b].fieldName == "descricao"){

                        //aqui
                        if (records.records[a].descricao.toLowerCase().indexOf(constraints[b].initialValue.toLowerCase()) >= 0){


                            newDataset.addRow(new Array(records.records[a].ep_codigo,
                                                        records.records[a].cod_estabel,
                                                        records.records[a].cod_estabel_atend,
                                                        records.records[a].sc_codigo,
                                                        records.records[a].it_codigo,
                                                        records.records[a].descricao,
                                                        records.records[a].qtd_disp_estoq,    
                                                        records.records[a].qtd_max,    
                                                        records.records[a].cod_grupo_estoque,
                                                        records.records[a].cod_familia_estoque,
                                                        records.records[a].un,
                                                        records.records[a].cod_unid_negoc,
                                                        records.records[a].des_unid_negoc,
                                                        records.records[a].cd_nat_desp,
                                                        records.records[a].cod_utiliz,
                                                        records.records[a].des_utiliz,
                                                        records.records[a].ct_codigo,
                                                        records.records[a].qtd_dias_atend,
                                                        records.records[a].descricao,
                                                        records.records[a].url_imagem));
                            sqlLimitAux++;
                        }

                    }

                    if (constraints[b].fieldName == "sqlLimit"){
                        sqlLimit = constraints[b].initialValue;
                    }
                }

                if (sqlLimitAux==sqlLimit) break;    

            }

        }
    }

    return newDataset;


}
function **listaItens**(cdEmpJson,cdEstabRequisJson,cdEstabAtendJson,cdCCustoRequisJson,cdGrEstRequisJson,cdFmEstRequisJson,itCod, itDesc, QtdDispEstoq,QtdMax,Un,
           cdUnidNeg,desUnidNeg,cdNatDesp,cdUtiliz,desUtiliz,ctCodigo,descCt,QtDiasAtend,URLImagem) {

    //Fazer o try do Dataset ems_consulta_itens_familia_interno
    log.info('entrei AAA');
    try {

        var records = **DatasetFactory.getDataset**("**ems_consulta_itens_grupo_familia_interno**", new Array(cdEmpJson, cdEstabRequisJson,cdCCustoRequisJson,cdGrEstRequisJson,cdFmEstRequisJson,cdEstabAtendJson),null, null);

    } catch (error){
         log.error(error.message);
    }
    return records;
}
compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags dataset dataset-interno ou faça a sua própria pergunta.