Ir para conteúdo
  • Cadastre-se

dev botao

Erro no ACBrExtratoAPI do Banco Brasil


Ver Solução Respondido por Desenv. AT Info Sistemas,

Recommended Posts

  • Membros Pro
Postado

Bom dia, 

Comecei usar o novo componente ACBrExtratoAPI  para o Banco do Brasil.

Estou tento problema para consultar o extrato para as datas quando o dia é menor que 10, olhando a documentação do banco notei que deve ser enviada a data sem zeros a esquerda, por exemplo:

Dia 01/09/2024 deve ser enviado 1092024.

Segue página da documentação.

https://apoio.developers.bb.com.br/referency/post/647f6e28dcefbe001288865e

 

 

  • Membros Pro
Postado

Bom dia!

Atualizei e resolveu esse problema, agora estou fazendo a importação dos dados.

Tentei seguir o programa exemplo, mas estou com dificuldade para importar os números dos documentos dos extratos, no exemplo está utilizando a classe geral de Lançamentos e não possui o campo numero do documento, olhando os fontes no banco do Brasil trata esse campo.

Como posso fazer para ler na importação o numero do documento?

 

Classe geral:

  TACBrExtratoLancamento = class
  private
    fpDataLancamento: TDateTime;
    fpDataMovimento: TDateTime;
    fpDescricao: String;
    fpInfoComplementar: String;
    fpTipoOperacao: TACBrExtratoAPITipoOperacao;
    fpValor: Double;

 

Classe Banco Brasil

TACBrExtratoBBLancamento = class(TACBrAPISchema)
  private
    fcodigoAgenciaContrapartida: Integer;
    fcodigoAgenciaOrigem: Integer;
    fcodigoBancoContrapartida: Integer;
    fcodigoHistorico: String;
    fdataLancamento: TDateTime;
    fdataMovimento: TDateTime;
    findicadorTipoLancamento: Integer;
    fnumeroContaContrapartida: String;
    fnumeroCpfCnpjContrapartida: Integer;
    fnumeroDocumento: Integer;
    fnumeroLote: Integer;
    ftextoDescricaoHistorico: String;
    ftextoDvContaContrapartida: String;
    ftextoInformacaoComplementar: String;
    fvalorLancamento: Double;
    findicadorSinalLancamento: TACBrExtratoAPITipoOperacao;
    findicadorTipoPessoaContrapartida: TACBrExtratoBBTipoPessoa;

 

 

 

  • Membros Pro
Postado

Bom dia,

Como falei acima, preciso de uma ajuda para buscar o retorno com os dados do Extrato do Banco do Brasil, pois como está no programa exemplo com o retorno da classe geral eu não tenho alguns dados que preciso como  o número do documento.

 

  • Fundadores
Postado

Você poderia usar TypeCast... mas se fizer isso, o seu código ficará funcional, apenas para a API do Banco do Brasil, pois as demais classes filhas, podem não ter todas as mesmas propriedades

@EliasCesar,

Porque foi necessário separar TACBrExtratoLancamento  e TACBrExtratoBBLancamento ?

Como você pensa em especificar, as classes dos demais bancos ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Consultores
Postado

Bom dia pessoal, 

Foi criada a classe TACBrExtratoLancamento que possui os campos em comum entre as respostas dos Bancos que já implementamos.
Ela poderia ser alterada para abranger esse campo específico, porém não seria preenchida na implementação dos demais Bancos.

14 horas atrás, Daniel Simoes disse:

Como você pensa em especificar, as classes dos demais bancos ?

Todos os bancos possuirão uma classe específica de resposta do lançamento, e após a consulta precisarão converter esse conteúdo para a nossa classe padrão TACBrExtratoLancamento 

22 horas atrás, Desenv. AT Info Sistemas disse:

preciso de uma ajuda para buscar o retorno com os dados do Extrato do Banco do Brasil

Uma alternativa é fazer um typecast, como o Daniel citou. Algo como:

  if (ACBrExtratoAPI1.BancoConsulta = bccBancoDoBrasil) then
    for i := 0 to Pred(ACBrExtratoAPI1.ExtratoConsultado.Lancamentos.Count) do
      wNumDocto := TACBrExtratoBBLancamento(ACBrExtratoAPI1.ExtratoConsultado.Lancamentos[i]).numeroDocumento;

 

Consultor SAC ACBr

Elias César Vieira
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Assine o
SAC

 
  • Membros Pro
Postado

Bom dia,

Mas acredito que o Numero do Documento terá em todos os demais bancos, pois se trata de um campo principal do documento, alguns poderão retornar em um campo com nome diferente, como 'Seu numero', 'Numero documento', 'Documento'.

Acredito que poderia add o campo Numero do Documento na classe principal.

 

  • Curtir 1
  • Consultores
Postado

Sim, concordo que na teoria deveria vir em todos os bancos mesmo. 
Mas da uma olhada na resposta das transações do banco Inter:

image.png

Como eu coloquei apenas os campos comum entre os bancos, acabei deixando esse campo fora. 
Mas vou efetuar a alteração incluindo esse campo no objeto padrão.

Tem mais algum campo que vcs julguem importante que deveria estar no TACBrExtratoLancamento?
daí eu ja incluo junto aqui...

Consultor SAC ACBr

Elias César Vieira
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Assine o
SAC

 
  • Consultores
Postado

Conforme a documentação da API Extrato do Banco do Brasil, esse campo é Integer:
image.png


E pelo que verifiquei nos meus testes, em todas as respostas da lista de lançamentos o campo também é integer:
image.png

2 horas atrás, Desenv. AT Info Sistemas disse:

o correto é ser String

Essa informação está em alguma documentação?

Consultor SAC ACBr

Elias César Vieira
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Assine o
SAC

 
  • Membros Pro
Postado

Boa tarde

Identifiquei o erro, na importação que fiz os números não bateram por exemplo no log no dia 19092024 tem um documento com número  "numeroDocumento": 550911000030471 ,  mas o Acbr no retorno está retornando como -160060153.

Deve ter algum erro na conversão de inteiro para string.

 

Segue o log com a importação

Extrato.log

  • Consultores
Postado

Hum, esse valor estoura o limite de Integer, estou verificando como corrigir, 
assim que enviar a correção pro SVN aviso aqui

Consultor SAC ACBr

Elias César Vieira
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Assine o
SAC

 
  • Consultores
Postado

Deu erro logo ao tentar solicitar o token, 
Provavelmente é algum problema com as credenciais/certificado ou estão faltando as DLLs da OpenSSL junto ao executável.

Sobre o problema do Integer... tente trocar essa unit e fazer um novo teste por favor:
ACBrExtratoAPIBB.pas

Consultor SAC ACBr

Elias César Vieira
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Assine o
SAC

 
  • Consultores
Postado

Vi que está configurando a chave pública. O componente está esperando a chave privada.

14 minutos atrás, Desenv. AT Info Sistemas disse:

Quanto ao número do documento deu certo,  importou corretamente

Obrigado pelo feedback. Acabei de enviar ao SVN, rev: 35396.

Consultor SAC ACBr

Elias César Vieira
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Assine o
SAC

 
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...