ERP – Pagamento Eletrônico – Erro de banco de dados ao gerar remessa do pagamento eletrônico
Incidente
No módulo Gestão de Contas a Pagar ao tentar gerar a remessa de pagamento eletrônico ao clicar no botão Processar, é apresentada a mensagem:
E510RPE: Erro de acesso ao banco de dados:
Banco de Dados: SQL Server 2005.
Erro do Engine(256): Error returned from ODBC function SQLExecute in TSqlCommandOdbc.Execute
ODBC Return Code: -1 (SQL_ERROR)
ODBC SqlState: 22003
Error Message: [Microsoft][SQL Native Client]Numeric value out of range
Pocedure: , Line: 0
Ou no banco de dados Oracle:
E510RPE: Erro de acesso ao banco de dados:
Banco de Dados: Oracle 18.
Erro do Banco (1438): ORA-01438: Value larger than specified precision allowed for this column
Causa
Esta mensagem é apresentada quando estoura o tamanho de um campo. Ou seja, está sendo passado um valor para o campo da tabela ao qual não comporta.
Em específico nessa tabela E510RPE, foi o campo DiaJrs que estourou o tamanho e isso ocorre quando o campo DatCjm da E501TCP não está sendo alimentado, seja numa integração ou importação do título.
Internamente o sistema faz um cálculo DiaJrs =(DatGer - DatCjm) que precisa de valor neste campo DatCjm e consequentemente estou o DiaJrs.
Solução
Para que a mensagem não seja apresentada ao efetuar a remessa, realize os passos a seguir:
Atenção
Quando o título é cadastrado de forma manual na tela F501TCP essa situação não ocorre, pois quando você informa o campo Vencimento Prorrogado, automaticamente já é alimentado o campo Data Cálculo Juros que é referente ao campo DatCjm.
Uma sugestão para evitar casos futuros, reveja como está dando entrada nesses títulos que apresentava problemas e alimente o campo DatCjm sempre.
No módulo Gestão de Contas a Pagar ao tentar gerar a remessa de pagamento eletrônico ao clicar no botão Processar, é apresentada a mensagem:
E510RPE: Erro de acesso ao banco de dados:
Banco de Dados: SQL Server 2005.
Erro do Engine(256): Error returned from ODBC function SQLExecute in TSqlCommandOdbc.Execute
ODBC Return Code: -1 (SQL_ERROR)
ODBC SqlState: 22003
Error Message: [Microsoft][SQL Native Client]Numeric value out of range
Pocedure: , Line: 0
Ou no banco de dados Oracle:
E510RPE: Erro de acesso ao banco de dados:
Banco de Dados: Oracle 18.
Erro do Banco (1438): ORA-01438: Value larger than specified precision allowed for this column
Causa
Esta mensagem é apresentada quando estoura o tamanho de um campo. Ou seja, está sendo passado um valor para o campo da tabela ao qual não comporta.
Em específico nessa tabela E510RPE, foi o campo DiaJrs que estourou o tamanho e isso ocorre quando o campo DatCjm da E501TCP não está sendo alimentado, seja numa integração ou importação do título.
Internamente o sistema faz um cálculo DiaJrs =(DatGer - DatCjm) que precisa de valor neste campo DatCjm e consequentemente estou o DiaJrs.
Solução
Para que a mensagem não seja apresentada ao efetuar a remessa, realize os passos a seguir:
1. Acesse a tela F501TCP_FPCP - Finanças / Gestão de Contas a Pagar / Contas a Pagar / Entrada e Manutenção / Títulos/Manutenção (Títulos/Manutenção do Contas a Pagar);
1.1. Informe o título com divergência;
1.2. Acesse o campo Vencimento Prorrogado e informe uma data diferente do que está atualmente no campo;
1.3. Passe para o próximo campo com a tecla TAB, dessa forma atualizará o campo DatCjm de forma automática;
1.4. Clique no botão Alterar;
1.5. Volte no campo Vencimento Prorrogado e informe a data que era anteriormente;
1.6. Clique no botão Alterar.
Atenção
Quando o título é cadastrado de forma manual na tela F501TCP essa situação não ocorre, pois quando você informa o campo Vencimento Prorrogado, automaticamente já é alimentado o campo Data Cálculo Juros que é referente ao campo DatCjm.
Uma sugestão para evitar casos futuros, reveja como está dando entrada nesses títulos que apresentava problemas e alimente o campo DatCjm sempre.
Observação
Caso seja necessário ajustar muitos títulos e você tenha conhecimento e acesso ao banco de dados, poderá fazer um comando update no campo DatCjm atribuindo a mesma data do campo DatPpt. Vale ressaltar que neste caso fica sob total responsabilidade de quem executar o comando.