Archive for category NF-e

Lendo arquivos XML no NetExpress 3.1 com MSXML

nfe

Olá companheiros !

Depois de um longo tempo sem atualizações, trouxe mais uma dica bacana para os amigos que como eu, estão sofrendo com a NF-e no NetExpress.

Utilizo o Uninfe para realizar o envio e retorno das notas e sempre tratei os arquivos de retorno no NetExpress com o INSPECT. Hoje porém,  me deparei com um problema mais sério, ler um XML de uma NF-e inteira e importar as informações para o meu sistema. Mais de 300 TAGS’s com INSPECT complicaria um pouco, certo ?

Já encontrei muitos exemplos de leitura de XML com as novas versões do NetExpress, a partir da versão 4 esse controle é nativo da ferramenta, mas e como fica o meu Net 3.1 ? Encontrei nesse site um demo de leitura do XML e para a minha surpresa, rodou certinho no Net 3.1, dei uma boa olhada para pegar o conceito  e resolvi criar um demo um pouco mais “didático”, para que outros também possam utilizar essa ferramenta.

Imagine poder chamar um método, passando para ele somente o nome do arquivo XML e retornando um objeto NFE com todos os dados da nota carregados ?

invoke wsrXml "CarregaNfe" using wsChave returning umaNFe

Esse é o meu objetivo, e com essa rotina ele ficou mais próximo de ser alcançado.  =)

Agora chega falatório, vamos a classe.

Para testar, declare a classe wsrXml no seu programa e simplesmente faça a chamada assim:

invoke wsrXml "LeXml"

No método “LeXml” eu deixei o caminho absoluto do arquivo XML que será aberto, não esqueça de alterar isso também antes de testar.

Daí pra frente é só animar e ler os comentários no código fonte. Ele vai imprimir na tela todas as TAG’s e Valores do arquivo XML. Só gostaria de lembrar que esse exemplo foi feito exclusivamente para um XML que tenha uma TAG principal e as suas “filhas”. O correto seria utilizar recursividade para poder ler infinitos níveis e valores no XML. Assim que eu tiver novos métodos, prometo atualizar o exemplo.

Fazer download do projeto - Ou você pode acessar a área de downloads.

O projeto foi útil pra você ? Deixe seu comentário para que eu saiba disso.

Abraço.

4 Comments