Olá Pessoal,
É com muita satisfação que venho informar a todos que o componente ACBrNFe ganhou novas units para Consultar a Situação de uma nota, solicitar a inutilização de um numero ou faixa de números, enviar eventos e para administrar o CSC (Código de Segurança do Contribuinte) usado na NFC-e, este ultimo não sei informa-los quais UF possuem um webservice para esse serviço.
Foram criadas novas units para gerar o XML de pedido de consulta, de inutilização de envio de eventos, bem como as units que fazem a leitura do retorno foram reescritas.
Elas se encontram em uma nova pasta: ...\Fontes\ACBrDFe\ACBrNFe\Base\Servicos
O que muda na minha aplicação?
Nada, pois essas units são utilizadas pelo próprio componente.
Porque foram criadas essas novas units?
As units antigas se utilizam das units pcnGerador e pcnLeitor para geração e leitura do XML respectivamente.
As novas units se utilizam das units ACBrXmlWriter e ACBrXmlReader que tem a mesma função de geração e leitura.
Não chegamos a realizar testes de velocidade nessas novas units criadas para o ACBrNFe, mas a um tempo atrás a unit responsável por ler o XML de um CT-e contendo aproximadamente 1.800 (mil e oitocentos) notas vinculadas demorava cerca de 6 minutos para realizar a leitura.
Foi criada uma nova unit se utilizando o ACBrXmlReader para realizar a leitura do XML do CT-e, foi realizado um teste com o XML contendo 1.800 notas vinculadas e o mesmo foi lido em aproximadamente 6 segundos.
Veja o ganho em velocidade na leitura do XML, de 6 minutos para 6 segundos.
Por conta dessa performance resolvemos reescrever todas as units que utilizam as units pcnGerador e pcnLeitor visando a passar a utilizar as units ACBrXmlWriter e ACBrXmlReader.
Não é um trabalho fácil e rápido.
As novas units foram escritas, foi criado os testes unitários para cada uma delas, depois de testadas fizemos a migração, um trabalho que consumiu varias semanas.
Em breve as units antigas vão ser removidas do SVN.
Esse trabalho vai ser realizado em outros componentes?
Sim, o próximo é o ACBrCTe, depois o ACBrMDFe.
Estamos trabalhando para deixar os componentes mais velozes.