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...