• advertisement_alt
  • advertisement_alt
  • advertisement_alt
caiogarcia

[ RESOLVIDO] PROBLEMA AO LER XML

4 posts in this topic

No meu sistema existe a rotina de importação de XML de compra, no qual o meu sistema lê o XML e adiciona os itens em uma table ...

Ele funciona bem, mas volta e meia acontece de somente o ULTIMO ITEM ser listado e os demais acima ficarem tudo em branco. SOLUÇÃO: Se eu renomeio o meu executável, a mesma nota volta a ser importada e listada normalmente ...

Ou seja, tendo em vista que ao renomear o arquivo exe, o sistema volta ao normal, o mais provável é que seja algum problema com o Windows ... Mas já tentei de tudo, já desinstalei anti virus, firewall, warsaw entre outras coisas que pudessem estar ocasionando certo "bloqueio" nessa parte de leitura de XML.

Alguém tem ou já teve algum problema parecido com esse?

Vou deixar abaixo parte do meu código de leitura do XML.

Desde já muito obrigado.

import_xml.png

import_xml2.png

import_xml3.png

1 person likes this

Share this post


Link to post
Share on other sites

Bom dia,

faço semelhante a vc, e tem sido 100% ate o momento

TableDeleteAll(TABLE_Produtos)

FOR EACH Produto OF xml.nfeProc.NFe.infNFe ON det	
nX is int = TableAddLine(TABLE_Produtos)

TABLE_Produtos[nX].COL_CodNcm = Produto.prod.NCM

TABLE_Produtos[nX].COL_VlrOut = Produto.prod.vOutro

TABLE_Produtos[nX].COL_VlrFrt = Produto.prod.vFrete

 

Share this post


Link to post
Share on other sites

Tenho uma outra rotina de importação de xml do Cupom Eletronico (SAT), que segue o mesmo padrao e tbm 100%

Sugestões:

- Jogue o TableAddLine num variável

- coloque essa variável junto a table e nao a coluna, tipo Table_XXXXX[nLinhaAdicionada].COL_XXXX e nao Table_XXXXX.COL_XXXX[nLinhaAdicionada]

- Faça teste puxando o xml de um arquivo e não de uma string como vc ta fazendo

2 people like this

Share this post


Link to post
Share on other sites

Com as dicas do amigo @Janio Aguiar e do @nathanreys consegui resolver o problema.

1. O seguinte insight parece que foi crucial pra resolução do problema:

- O TableAddLine já te retorna o número da linha, não precisa fazer o table..occurence para recuperar  a linha incluida

# linha = TableAddLine já resolve

1 person likes this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now