Ir para conteúdo
  • Cadastre-se

José M. S. Junior

Moderadores
  • Total de ítens

    6.523
  • Registro em

  • Última visita

  • Days Won

    54

Posts postados por José M. S. Junior

  1. Bom dia,

    Diego, eu sugiro que comece realizando testes com os demos específicos de cada biblioteca, por exemplo o demo ACBrLibNFe, pois esses são específicos para essa dll, com exemplos apenas dos métodos necessários. Com as instruções abaixo, consegue baixar os fontes do demo em C# e baixar as dlls do fórum, copiando as dlls corretas para pasta do projeto já consegue rodar, configurar a lib e testar.

    Além disso, com seu cadastro ACBrPro já deve ter acesso ao curso de introdução da ACBrLib, que pode te ajudar no entendimento para uso das mesmas.

    https://acbr.nutror.com/curso/e4f38b5c7398e4ccca8731c2d305952d389ac693

    • Curtir 1
  2. Atencao GIF by Ifes - Campus Vila VelhaListen GIF by Exxeta

    Está sendo cada vez mais frequente o uso de integração online para o registro de Boletos via API. O componente ACBrBoleto já suporta esse tipo de comunicação para alguns Bancos, seja via Rest ou Soap, mas como recebemos com frequência novas contribuições e com implementações de outros bancos os mesmos não tem um padrão entre eles. Foi necessário uma refatoração na camada do componente responsavel pela geração e integraçao Web do ACBrBoleto, o propósito é facilitar a manutenção e implementação de novos bancos, além de melhorias que se tornam necessárias na estrutura do componente.

    As modificações realizadas não causam grande impacto na forma como já é utilizado o ACBrBoleto para envio de títulos por APIs, com exceção dos pontos citados abaixo, onde será necessário alterar na sua aplicação:

     

    1- O método EnviarBoleto foi depreciado, passando a ser utilizado por padrão o método "Enviar". Ex:

      ACBrBoleto.Enviar; 

    (obs: Mesmo depreciado o método EnviarBoleto ainda pode ser utilizado, tendo as mesmas funcionalidades, mas não sendo recomendado o seu uso).

     

     

    2- O retorno de cada Título enviado, passa a ficar registrado e acessível a partir do próprio Título, na property "RetornoWeb". Podendo também ser acessado através do índice de cada Título, utilizando a property "ListaRetornoWeb" da classe ACBrBoleto. Sendo assim, se for realizado o envio de uma lista com vários títulos, será possível obter o retorno de cada título usando essa propriedade indexada. Ex:

      ACBrBoleto.Enviar; 
      for i:= 0 to Pred(ACBrBoleto.TotalListaRetornoWeb) do
      begin
        lCodigoRetorno:= ACBrBoleto.ListaRetornoWeb[i].CodRetorno;
        lMensagem:= ACBrBoleto.ListaRetornoWeb[i].MsgRetorno;
        ...

    Pode notar que não há muitas diferenças da forma como era utilizado antes, o detalhe é que não se usa mais o método "Count" de uma lista, e sim o método "TotalListaRetornoWeb" para saber o total de Títulos transmitidos, utilizando esse índice na property ListaRetornoWeb[] do componente ACBrBoleto.

     

     

    3- Apenas quando o Envio for uma Operação de "Consulta", poderá retornar uma lista com registros de vários títulos, nesse caso pode ser utilizada uma lista para obter os retorno. A mesma pode ser acessada utilizando o método "ListaConsultaRetornoWeb" do componente ACBrBoleto. Ex:

      ACBrBoleto.Configuracoes.WebService.Operacao := tpConsulta; 
    
      ACBrBoleto.Enviar; 
      for i:= 0 to Pred(ACBrBoleto.ListaConsultaRetornoWeb.count) do
      begin
        lCodigoRetorno:= ACBrBoleto.ListaConsultaRetornoWeb[i].CodRetorno;
        lMensagem:= ACBrBoleto.ListaConsultaRetornoWeb[i].MsgRetorno;
        ...

     

     

    4- O Log de Envio passou a ser gerado em um arquivo único, onde fica gravado todos os processos ( Autenticação, dados de Envio gerado pelo componente "Json ou XML" e os dados de retorno). Além disso os logs podem ser obtidos pelo evento "OnGravarLog" do componente ACBrBoleto. Localizado em (Configurações/Arquivos).

    A configuração para gravar log pode ser realizada em:

    ACBrBoleto.Configuracoes.Arquivos.LogRegistro:= True;
    ACBrBoleto.Configuracoes.Arquivos.PathGravarRegistro:= 'c:\temp'; 

     

     

    As alterações acima também estão exemplificadas no programa demo ACBrBoleto disponível na pasta Exemplos do Projeto ACBr. Veja o código nos botões: "Registrar Boleto OnLine", "Consultar Boleto"

    http://svn.code.sf.net/p/acbr/code/trunk2/Exemplos/ACBrBoleto/

    • Curtir 8
  3. Em 27/07/2022 at 15:56, Emerson Teixeira disse:

    sobre o campo "Codigo/cNF" alterei pq estava vindo vazio...

    realmente faltou o arquivo, estou enviando

    para compatibilidade com o net core 6 e 7, o correto seria criar outro projeto? 

    Adicionado contribuições e realizado os ajustes, estará disponível na versão da próxima semana da ACBrLib.

  4. 12 horas atrás, Net Shopping disse:

    Fizemos o que voce sugeriu, retiramos o recebimento do retorno do método, contudo lá no manual  mostra valores de retorno para este método.

    Esse retorno é apenas o inteiro que corresponde ao código do erro. Não tem retorno no sentido de precisar alocar ponteiro para obter uma resposta.

    Mas note que a mensagem de erro é na sua própria aplicação, não está nem chegando na ACBrlib, pois não está encontrando a declaração desse método para instancia-lo.

    O método NFe_CarregarIni está funcionando? Pois a funcionalidade é a mesma para o NFe_CarregarXML, a diferença que que deve passar o path com a extensão .xml no parâmetro.

  5. Bom dia, 

    O método ObterPDF serve para obter o mesmo em base 64 mesmo, caso esteja usando Web por exemplo. Para Salvar na própria máquina utilize o método ImprimirPDF, após carregar o mesmo.

    Será Salvo conforme a estrutura de diretórios configurada na lib o diretório raiz será o configurado no campo "Download.PathDownload" na sessão [NFe]

    https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca16.html

    • Curtir 1
  6. 41 minutos atrás, Daniel Simoes disse:

    @José M. S. Junior seria de muito impacto querermos a compatibilidade com esses Frameworks antigos?

    Na verdade as classes de alto nível estão nesses dois Frameworks mais antigos citados acima, justamente para poder ser utilizado por todos, pois aparentemente muitos ainda usam em sistemas legados. A questão é que algumas funcionalidades de frameworks novos acabam não sendo compatíveis com o mais antigos como foi o caso que teve nessa contribuição. 

    As tags abaixo são melhorias, mas não é compatível com os frameworks anteriores.

    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>disable</Nullable>

  7. 22 horas atrás, Emerson Teixeira disse:

    sobre o campo "Codigo/cNF" alterei pq estava vindo vazio...

    Vou verificar isso então.

    22 horas atrás, Emerson Teixeira disse:

    para compatibilidade com o net core 6 e 7, o correto seria criar outro projeto? 

    Não é necessário, foi implementado usando framework mais antigos (net452 e netstandard), juntamente para que possa ser utilizado por todos, a questão é só que recursos novos do .net 6 por exemplo não serão compatíveis. Mas pode manter atualizado no seu projeto se desejar.

     

    Vamos analisar a contribuição da lib, obrigado!

  8. Fernando, chegou a testar sua aplicação em outro ambiente "Limpo" sem nada instalado, tipo antivírus, firewall. Pois pode ser algum software que esteja sempre analisando o que é gerado pelo seu .exe por isso causa demora na geração.

    Talvez possa tentar adicionar seu .exe nas exceções do Antivírus e do próprio firewall do Windows. 

  9. Ok Fernando, pelos logs fica evidente o tempo para geração do PDF e Impressão, e que começou a ocorrer a partir de algumas versões adiante,  a questão é a mesma que estava ocorrendo com o  seu caso no ACBrMonitor. O problema é que isso parece ser algo muito específico, que está ocorrendo no seu ambiente, pois nos testes não conseguimos simular nada parecido... Até mesmo por que se estivesse ocorrendo com os demais usuários teríamos muitos relatos desse problema.

    O que eu sugiro para que possamos analisar a fundo seu caso, é que você nos disponibilize uma VM com seu ambiente de uso, (não precisa estar com seu sistema instalado), assim conseguiríamos simular por aqui e se for o caso criamos um ambiente de desenvolvimento a partir dessa VM para identificar onde ocorre o problema. Pois apenas analisando as modificações entre versões não identificamos nenhum ponto nos fontes que possa estar ocasionando isso.

  10. Boa tarde Emerson,

    Atualizado as suas contribuições no SVN com algumas pequenas ressalvas...

    - A nomenclatura das tags da NFe estamos procurando manter idênticas as nomenclaturas do MOC SEFAZ, embora a lib ainda permita a leitura de nomenclaturas diferentes para o mesmo campo como "Codigo" ou "cNF", atualizamos para que a leitura padrão seja sempre a mesma da SEFAZ. A ideia é que todas estejam assim também nos nossos manuais.

    - Quanto a adição de diretivas de uso global no Projeto, não adicionamos devido não ser compatível com os Frameworks mais antigos aos quais precisamos manter compatibilidade.

    - A contribuição no fonte da ACBrLib em Lazarus creio que faltou anexar os arquivos modificados, está apenas o arquivo .lpi do projeto.

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