Integração Fluig RM

Bom dia,

Ao executar um dataset com a integração com o serviço "wsConsultaSQL", ao informar as variaveis necessárias ele está me retornando o seguinte:

Erro na comunicação com o app (linha: 42): JavaException: javax.xml.ws.soap.SOAPFaultException: The conversion of the varchar value '99999999999' overflowed an INT2 column. Use a larger integer column.

Como faço para resolver esse tipo de problema?

function createDataset(fields, constraints, sortFields)    
{    
//    var USUARIO = 
    //var SENHA = 
    var NOME_SERVICO = "WsConsultaSQL"; // Nome do serviço criado no Fluig Studio  
    var CAMINHO_SERVICO = "com.totvs.WsConsultaSQL"; // Caminho do serviço  
    var dataset = DatasetBuilder.newDataset();  

    try {  
        // Obtem a instancia do serviço   
        var servico = ServiceManager.getServiceInstance(NOME_SERVICO);          
        // Inicializa o serviço  
        var instancia = servico.instantiate(CAMINHO_SERVICO);      
        log.info("!!! CAMINHO_SERVICO_CPF !!!" );
        log.info(instancia);

        // Obtem o WebService para consumo  
        var ws = instancia.getRMIwsConsultaSQL();            
        var serviceHelper = servico.getBean();  
        // Autenticação no serviço  
        var authService = serviceHelper.getBasicAuthenticatedClient(ws, "com.totvs.IwsConsultaSQL", 'integracao', '**********');  

        /** 
         * O método realizarConsultaSQL espera 4 parametros: 
         * 1º - Código da Consulta SQL cadastrada no sistema 
         * 2º - Código da Coligada 
         * 3º - Código do Sistema 
         * 4º - Parametros utilizados na consulta SQL. Ex.: "CODCOLIGADA=1;UF=MG" 
         * Retorno: Um XML de um DataTable do retorno da execução da consulta SQL 
         */  
var user = getValue("WKUser");

        // Pega o CPF no cadastro do FLUIG em Dados Adicionais
        //var cpf = fluigAPI.getUserService().getCurrent().getExtraData("CPF");
        var cpf = "99999999999";

        var colig = "10";

        var param = "CPF="+cpf+";"+"COLIGADA="+colig;

        // FLUIG_PFUNC_CPF = Nome da Consulta SQL criado no RM
        var result = authService.realizarConsultaSQL("FLUIG_TESTE", 0, "P", param);


        if ((result != null) && (result.indexOf("===") != -1)) {
            var msgErro = result.substring(0, result.indexOf("==="));
            log.error("Erro: " + msgErro);
            throw "Erro: " + msgErro;
        }

        // Insere o resultado em um objeto XML para melhor manipulação dos dados
        var xmlResultados = new XML(result);


        // Cria as colunas que serão retornadas pela consulta SQL e que serão utilizadas
        dataset.addColumn("NOME");
        dataset.addColumn("DATAINICIO");
        dataset.addColumn("CODSECAO");
        dataset.addColumn("CHEFE_MASTER");


        // Adiciona os dados no dataset
        array = new Array();

        for (var i = 0; i < xmlResultados.Resultado.length(); i++) 
        {
            dataset.addRow(new Array( xmlResultados.Resultado.NOME[i].toString(), 
                                      xmlResultados.Resultado.DATAINICIO[i].toString(),
                                      xmlResultados.Resultado.CODSECAO[i].toString(),
                                      xmlResultados.Resultado.CHEFE_MASTER[i].toString()
                                    )
                          );
    }

} catch (e) 
{
        if (e == null)
            e = "Erro desconhecido; verifique o log do AppServer";

        var mensagemErro = "Erro na comunicação com o app (linha: " + e.lineNumber + "): " + e;
        log.error(mensagemErro);
        log.info(mensagemErro);
        dataset.addColumn("ERROR");
        dataset.addColumn("MESSAGE_ERROR");
        dataset.addRow(new Array(-1, mensagemErro));
}

return dataset;
}
DECLARE @coligada INT, @chapa VARCHAR(5), @cpf VARCHAR(11);

-- coligada
SET @coligada = 10;     
SET @cpf = '99999999999'

SELECT PFUNC.NOME, PEXTERNO.DATAINICIO, PEXTERNO.CODSECAO, PCHEFEEXTERNO.MASTER CHEFE_MASTER
FROM PEXTERNO, PFUNC, PCHEFEEXTERNO
WHERE PFUNC.CODPESSOA = PEXTERNO.CODPESSOA
  AND PCHEFEEXTERNO.CODCOLSUBST = PEXTERNO.CODCOLIGADA
  AND PCHEFEEXTERNO.CODEXTERNO = PEXTERNO.CODEXTERNO
  AND PEXTERNO.CODCOLIGADA = @coligada
  AND PEXTERNO.CODSECAO IN (SELECT CODSECAO
                            FROM PEXTERNO 
                            WHERE CODCOLIGADA = @coligada
                                AND CODEXTERNO IN (SELECT CODEXTERNO 
                                                    FROM PCHEFEEXTERNO 
                                                    WHERE CODCOLIGADA = @coligada
                                                        AND substring(CODSECAO,1,11) IN (SELECT substring(PFUNC.CODSECAO,1,11)
                                                                                          FROM PFUNC
                                                                                          WHERE PFUNC.CODCOLIGADA = @coligada
                                                                                            AND PFUNC.CHAPA IN (SELECT PSUBSTCHEFE.CHAPASUBST
                                                                                                                 FROM PSUBSTCHEFE
                                                                                                              INNER JOIN PFUNC ON PFUNC.CODCOLIGADA = PSUBSTCHEFE.CODCOLSUBST AND PFUNC.CHAPA = PSUBSTCHEFE.CHAPASUBST
                                                                                                           WHERE PSUBSTCHEFE.CODCOLIGADA = @coligada
                                                                                                                 AND PSUBSTCHEFE.CODSECAO IN (SELECT PFUNC.CODSECAO
                                                                                                                                              FROM PFUNC
                                                                                                                                              INNER JOIN PPESSOA ON PPESSOA.CODIGO = PFUNC.CODPESSOA
                                                                                                                                              WHERE PFUNC.CODCOLIGADA = @coligada
                                                                                                                                                AND PFUNC.CODSITUACAO <> 'D'
                                                                                                                                                AND PPESSOA.CPF = @cpf)
                                                                                                                 AND PSUBSTCHEFE.DATAINICIO <= GETDATE()
                                                                                                                 AND PSUBSTCHEFE.DATAFIM IS NULL)
                                                                                           AND PFUNC.CODSITUACAO <> 'D')))

UNION ALL

SELECT PFUNC.NOME, PSUBSTCHEFE.DATAINICIO, PSUBSTCHEFE.CODSECAO, PSUBSTCHEFE.MASTER CHEFE_MASTER
FROM PSUBSTCHEFE
INNER JOIN PFUNC ON PFUNC.CODCOLIGADA = PSUBSTCHEFE.CODCOLSUBST AND PFUNC.CHAPA = PSUBSTCHEFE.CHAPASUBST
WHERE PSUBSTCHEFE.CODCOLIGADA = @coligada
  AND substring(PSUBSTCHEFE.CODSECAO,1,11) IN (SELECT substring(PFUNC.CODSECAO,1,11)
                                 FROM PFUNC
                                 WHERE PFUNC.CODCOLIGADA = @coligada
                                   AND PFUNC.CHAPA IN (SELECT PSUBSTCHEFE.CHAPASUBST
                                                        FROM PSUBSTCHEFE
                                                        INNER JOIN PFUNC ON PFUNC.CODCOLIGADA = PSUBSTCHEFE.CODCOLSUBST AND PFUNC.CHAPA = PSUBSTCHEFE.CHAPASUBST
                                                     WHERE PSUBSTCHEFE.CODCOLIGADA = @coligada
                                                         AND PSUBSTCHEFE.CODSECAO IN (SELECT PFUNC.CODSECAO
                                                                                         FROM PFUNC
                                                                                         INNER JOIN PPESSOA ON PPESSOA.CODIGO = PFUNC.CODPESSOA
                                                                                         WHERE PFUNC.CODCOLIGADA = @coligada
                                                                                         AND PFUNC.CODSITUACAO <> 'D'
                                                                                         AND PPESSOA.CPF = @cpf)
                                                         AND PSUBSTCHEFE.DATAINICIO <= GETDATE()
                                                         AND PSUBSTCHEFE.DATAFIM IS NULL)
                                   AND PFUNC.CODSITUACAO <> 'D')
  AND PSUBSTCHEFE.DATAINICIO <= GETDATE()
  AND PSUBSTCHEFE.DATAFIM IS NULL
  AND PSUBSTCHEFE.CODSECAO <> PFUNC.CODSECAO

UNION ALL

SELECT PFUNC.NOME, PSUBSTCHEFE.DATAINICIO, PSUBSTCHEFE.CODSECAO, PSUBSTCHEFE.MASTER CHEFE_MASTER
FROM PSUBSTCHEFE
INNER JOIN PFUNC ON PFUNC.CODCOLIGADA = PSUBSTCHEFE.CODCOLSUBST AND PFUNC.CHAPA = PSUBSTCHEFE.CHAPASUBST
WHERE PSUBSTCHEFE.CODCOLIGADA = @coligada
  AND PSUBSTCHEFE.CODSECAO IN (SELECT PFUNC.CODSECAO
                                 FROM PFUNC
                                 INNER JOIN PPESSOA ON PPESSOA.CODIGO = PFUNC.CODPESSOA
                                 WHERE PFUNC.CODCOLIGADA = @coligada
                                   AND PFUNC.CODSITUACAO <> 'D'
                                   AND PPESSOA.CPF = @cpf)
  AND PSUBSTCHEFE.DATAINICIO <= GETDATE()
  AND PSUBSTCHEFE.DATAFIM IS NULL
compartilhar
  • Carlos, como está cadastrada essa consulta no RM?

    Diogo Boegershausen   29 de Mar de 2018
  • Diogo, copiei o código utilizado no RM logo acima.

    Carlos Piva   29 de Mar de 2018
  • Apenas uma ressalva Diogo, as 5 primeiras linhas são para execução em Query, no RM não existem as 5 primeiras linhas.

    Carlos Piva   29 de Mar de 2018
  • PPESSOA.CPF é que tipo de coluna da tabela? Varchar mesmo? Não sei como funciona a extração de parâmetros que você passa na consulta pro RM, só por chute, se você inverter a ordem dos parâmetros, colocar a coligada primeiro e depois o cpf, dá o mesmo erro? Porque se o campo CPF da tabela for varchar a impressão que dá é que ele está tentando jogar o valor do CPF como a coligada que é inteiro.

    Diogo Boegershausen   29 de Mar de 2018
  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 integracao ou faça a sua própria pergunta.