Membros Pro Desenv. AT Info Sistemas Posted September 24 Membros Pro Share Posted September 24 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 Link to comment Share on other sites More sharing options...
Consultores EliasCesar Posted September 24 Consultores Share Posted September 24 Bom dia @Desenv. AT Info Sistemas Esse problema já devia estar corrigido. Verifique se seus fontes estão atualizados. 2 Elias César Vieira Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Assine o SAC Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 24 Author Membros Pro Share Posted September 24 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; Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 25 Author Membros Pro Share Posted September 25 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. Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted September 25 Fundadores Share Posted September 25 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 ? Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Consultores EliasCesar Posted September 26 Consultores Share Posted September 26 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; Elias César Vieira Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Assine o SAC Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 26 Author Membros Pro Share Posted September 26 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. 1 Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted September 26 Fundadores Share Posted September 26 O Número do Documento deveria ser um dado Importante, e disponível a todas as Classes Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Consultores EliasCesar Posted September 26 Consultores Share Posted September 26 Sim, concordo que na teoria deveria vir em todos os bancos mesmo. Mas da uma olhada na resposta das transações do banco Inter: 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... Elias César Vieira Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Assine o SAC Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 26 Author Membros Pro Share Posted September 26 Bom dia, Acredito que seria só o campo Numero do Documento que estaria faltando. Link to comment Share on other sites More sharing options...
Consultores EliasCesar Posted September 26 Consultores Share Posted September 26 Acabei de enviar essa alteração ao SVN, rev: 35389. @Desenv. AT Info Sistemas se puder por favor atualizar seus fontes e verificar se ficou ok. Elias César Vieira Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Assine o SAC Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 26 Author Membros Pro Share Posted September 26 Obrigado, Vou atualizar e testar. 1 Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 26 Author Membros Pro Share Posted September 26 Boa tarde, O campo numero do documento está importando errado, ai notei que é porque ele é Integer, o correto é ser String, pois tem números de boletos que não são Inteiros, por exemplo um boleto tem número 123-1, 123-A, 123-B. Link to comment Share on other sites More sharing options...
Consultores EliasCesar Posted September 26 Consultores Share Posted September 26 Conforme a documentação da API Extrato do Banco do Brasil, esse campo é Integer: E pelo que verifiquei nos meus testes, em todas as respostas da lista de lançamentos o campo também é integer: 2 horas atrás, Desenv. AT Info Sistemas disse: o correto é ser String Essa informação está em alguma documentação? Elias César Vieira Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Assine o SAC Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 26 Author Membros Pro Share Posted September 26 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 Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 26 Author Membros Pro Share Posted September 26 Identifiquei que aqui nessa rotina ele está com o número errado Link to comment Share on other sites More sharing options...
Consultores EliasCesar Posted September 26 Consultores Share Posted September 26 Hum, esse valor estoura o limite de Integer, estou verificando como corrigir, assim que enviar a correção pro SVN aviso aqui Elias César Vieira Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Assine o SAC Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 26 Author Membros Pro Share Posted September 26 Certo, O cliente me passou os dados de produção fui testar e deu erro Segue o log Extrato.log Link to comment Share on other sites More sharing options...
Consultores EliasCesar Posted September 26 Consultores Share Posted September 26 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 Elias César Vieira Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Assine o SAC Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 26 Author Membros Pro Share Posted September 26 (edited) Dll não deve ser pois uso as API de Boletos e funcionam, talvez o tipo que geraram as chaves. Utilizei o programa exemplo e deu erro ao ler os certificados. Edited September 26 by Desenv. AT Info Sistemas Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 26 Author Membros Pro Share Posted September 26 Quanto ao número do documento deu certo, importou corretamente. Agora precisaria descobrir o que pode ser o erro dos certificados. Link to comment Share on other sites More sharing options...
Consultores EliasCesar Posted September 26 Consultores Share Posted September 26 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. Elias César Vieira Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Assine o SAC Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 26 Author Membros Pro Share Posted September 26 Verdade, não tinha reparado. Vou pedir a chave privada. Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 27 Author Membros Pro Share Posted September 27 (edited) Bom dia, O Cliente me passou o certificado e gerei as chaves conforme este link. Mas fui testar o extrato e gerou este erro no log. Extrato.log Edited September 27 by Desenv. AT Info Sistemas Link to comment Share on other sites More sharing options...
Membros Pro Desenv. AT Info Sistemas Posted September 27 Author Membros Pro Share Posted September 27 A principio os certificados estão certos, no programa exemplo deu ok Link to comment Share on other sites More sharing options...
Recommended Posts