Ir para conteúdo
  • Cadastre-se

Alex-NETSide

Membros
  • Total de ítens

    3
  • Registro em

  • Última visita

Alex-NETSide's Achievements

Newbie

Newbie (1/14)

  • One Year In
  • First Post
  • Conversation Starter
  • Dedicated Rare
  • One Month Later

Recent Badges

2

Reputação

  1. Segue em anexo, unit ACBrBoleto.pas com a sugestão de correção. ACBrBoleto.pas
  2. Olá, senhores. Estou tendo problemas com a leitura de um arquivo de retorno do banco Bradesco, modelo CNAB-400, em resposta a uma alteração de vencimento. Apenas para contextualização: Foi emitido um boleto e enviado ao banco Bradesco que confirmou seu registro normalmente, com a motivação "P1" (Registrado com QR CODE PIX) Dias depois, foi enviado em uma nova remessa, uma solicitação para alteração de vencimento, com a motivação "06" (Alteração de Vencimento) O retorno do banco trouxe dois registros para o mesmo boleto, sendo uma ocorrência "14" (Vencimento Alterado) e outro registro com ocorrência "33" (Confirmação Pedido Alteração Outros Dados), ambas com a motivação "P8" (Alteração não Permitida - QR CODE Pago ou Cancelado) Para variar, existe esse retorno do banco que parecem ser dois registros redundantes, mas no que diz respeito à nossa parte técnica, existe uma falha no procedimento ACBrBoleto.LerRetorno400(), especificamente no trecho abaixo: CodMotivo := IfThen(copy(Linha,MotivoLinha,2) = ' ','00',copy(Linha,MotivoLinha,2)); ... {Somente estas ocorrencias possuem motivos 00} if(CodOcorrencia in [02, 06, 09, 10, 12 ,13, 14, 15 ,17])then begin MotivoRejeicaoComando.Add(IfThen(copy(Linha,MotivoLinha,2) = ' ','00',copy(Linha,MotivoLinha,2))); if VarIsNumeric(CodMotivo) then DescricaoMotivoRejeicaoComando.Add(CodMotivoRejeicaoToDescricao(OcorrenciaOriginal.Tipo,Integer(CodMotivo))) else DescricaoMotivoRejeicaoComando.Add(CodMotivoRejeicaoToDescricao(OcorrenciaOriginal.Tipo,VarToStr(CodMotivo))); end else begin if(CodMotivo = 0)then ... end; Quando a ocorrência é "33", o algoritmo não atende ao if do conjunto, logo, o else é executado, fazendo com que seja levantada uma exceção, na comparação do valor de CodMotivo, que assume no momento o valor string "P8" com o valor integer "0", levantando uma exceção. Nessa situação, acredito que será necessário um ajuste nos fontes, simplesmente incluindo a ocorrência "33" na validação do conjunto: if(CodOcorrencia in [02, 06, 09, 10, 12 ,13, 14, 15, 17, 33])then Assim o variant receberá sua tratativa e evitaremos o levantamento da exceção. Obs.: O Manual de Procedimentos Operacionais para Troca de Arquivos (Bradesco) trata dessa informação na Página 46, e foi utilizado a versão mais recente, localizado no próprio svn: ..\tools\Bancos\237-Bradesco\CNAB400_Cobranca_2022_VER003.pdf
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...