Versão atual:

Consultar tabela no protheus com JDBC

BOA TARDE, Estou tentando fazer um select utilizando um serviço JDBC, Fiz a query no sql mostra as informações mas quando coloco no DataSet do fluig não mostra nenhuma informação. Alguém poderia me dar uma ajuda.

function createDataset(fields, constraints, sortFields) {
       var newDataset = DatasetBuilder.newDataset();
        var prefixo = '';

        if(constraints != null){
            for (var i = 0; i < constraints.length; i++){            
                if(constraints[i].fieldName == 'E2_PREFIXO'){
                    prefixo = constraints[i].initialValue;
                }            
            }    
        }

    var dataSource = "/jdbc/consultatitu";
    var ic = new javax.naming.InitialContext();
    var ds = ic.lookup(dataSource);
    var created = false;
    var myQuery = " SELECT E2_PREFIXO PREFIXO, E2_NUM NUMERO,E2_PARCELA PARCELA, CONVERT (VARCHAR, CONVERT(DATETIME, E2_EMISSAO, 102), 103) AS Emissao, CONVERT (VARCHAR, CONVERT(DATETIME, E2_VENCREA, 102), 103) AS Vencimento,  A2_NOME FORNECEDOR, ED_DESCRIC NATUREZA, E2_SALDO VALOR";
        myQuery += "        FROM SE2010 SE2 ";
        myQuery += "        INNER JOIN SA2010 SA2 ON SA2.D_E_L_E_T_ = '' AND E2_FORNECE = A2_COD AND E2_LOJA = A2_LOJA ";
        myQuery += "    LEFT OUTER JOIN SED010 SED ON SED.D_E_L_E_T_ = '' AND E2_NATUREZ = ED_CODIGO ";
        myQuery += "        WHERE SE2.D_E_L_E_T_ = '' ";
        myQuery += "        AND E2_SALDO > 0 ";          
        myQuery += "        AND E2_NUMBOR = '' ";   
        myQuery += "        AND E2_DATALIB = '' ";   
        myQuery += "        AND E2_PREFIXO <> '' "; 

        myQuery += "GROUP BY E2_EMISSAO, E2_PREFIXO,E2_NUM, E2_PARCELA ,E2_VENCREA, E2_DATALIB, ED_DESCRIC, E2_SALDO,A2_NOME"; 
        myQuery += "ORDER BY E2_EMISSAO,PREFIXO, E2_NUM ";

        log.info("QUERY: " + myQuery);
    try {
        var conn = ds.getConnection();
        var stmt = conn.createStatement();
        var rs = stmt.executeQuery(myQuery);
        var columnCount = rs.getMetaData().getColumnCount();
        while (rs.next()) {
            if (!created) {
                for (var i = 1; i <= columnCount; i++) {
                    newDataset.addColumn(rs.getMetaData().getColumnName(i));
                }
                created = true;
            }
            var Arr = new Array();
            for (var i = 1; i <= columnCount; i++) {
                var obj = rs.getObject(rs.getMetaData().getColumnName(i));
                if (null != obj) {
                    Arr[i - 1] = rs.getObject(rs.getMetaData().getColumnName(i)).toString();
                } else {
                    Arr[i - 1] = "null";
                }
            }
            newDataset.addRow(Arr);
        }
    } catch (e) {
        log.error("ERRO==============> " + e.message);
    } finally {
        if (stmt != null) {
            stmt.close();
        }
        if (conn != null) {
            conn.close();
        }
    }
    return newDataset;
}

Versão (1):

Ver a versão formatada

Consultar tabela no protheus com JDBC

  • criado 20 de Jan de 2020

Comentário

new question