Versão atual:

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;
}

Versões (3):

Ver a versão formatada

Consultar Dataset Interno com filtro passado por outro Dataset.

Comentário

new question