Ir para conteúdo
  • Cadastre-se

dev botao

Problema XML baixado pela DistribuiçãoDFe


  • Este tópico foi criado há 1930 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Após a inclusão do ParseText na linha 435 da Unit pcnRetDistDFeInt, conforme imagem abaixo, o XML baixado pelo método "ACBrNFe1.DistribuicaoDFePorChaveNFe(cUF, vCNPJ, vChave)" não abre em alguns programas que fazem leitura do xml, como por exemplo, no internet explorer.
Descobri pois alguns contadores disseram não estar conseguindo realizar a importação nos programas que utilizam, mas caso baixem o mesmo XML pelo portal da NFe, funciona normalmente.

Para ter certeza que o problema passou a ocorrer após a inclusão do ParseText, dei um revert, compilei e baixei os XMLs novamente. 
Todos os XMLs passaram a abrir normalmente no Internet Explorer.

Anexei os XMLs de exemplo. O após a atualização (com problema) inicia "ComParse" e o anterior a atualização, que funciona normalmente, tem o nome iniciado por "SemParse".

Obs: Testei as combinações possíveis das propriedades "RetiraAcento" e "RetiraEspaco" e o problema ainda ocorre.
Poderiam ajudar por favor a identificar/corrigir o problema? 
A princípio estou utilizando a versão anterior à modificação, mas gostaria de manter os fontes atualizados.
Desde já, obrigado.

altParse.png

ComParse-32180917586530000166550010000389501190558750-nfe.xml

SemParse32180917586530000166550010000389501190558750-nfe.xml

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Boa tarde!

Estamos enfrentando o mesmo problema aqui na empresa após atualização dos fontes do ACBr.
O XML fica inválido devido a função ParseText substituir entidades de referência pelo seu respectivo operador, como por exemplo &lt; para  <.

A motivação desta alteração pode ser visualizada na postagem abaixo.

Não sei qual seria a melhor opção neste caso.
Talvez o @Daniel Simoes possa nos auxiliar.

Link para o comentário
Compartilhar em outros sites

Bom dia, @Daniel Simoes

Com este ajuste os valores são carregados corretamente nas propriedades do componente, porém ainda é necessário converter o XML para gravar no banco de dados.
Pensei em usar a função DecodeToString ao invés do ParseText para setar a variável StrDecod.

StrDecod := DecodeToString(UnZip(DecodeBase64(StrAux)), True);

O que você acha Daniel?

Link para o comentário
Compartilhar em outros sites

O XML fica com caracteres inválidos, igual o exemplo enviado na outra postagem que motivou estas alterações.
Para gravar corretamente no banco de dados eu uso a função ConverteXMLtoNativeString, porém ela remove a declaração do XML.

A codificação fica correta utilizando a função DecodeToString sem remover a declaração do XML.

Editado por Allan Wolski
Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Allan,

De qual propriedade você esta pegando o XML para salvar no banco de dados?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Fundadores
31 minutos atrás, Allan Wolski disse:

O XML fica com caracteres inválidos, igual o exemplo enviado na outra postagem que motivou estas alterações.
Para gravar corretamente no banco de dados eu uso a função ConverteXMLtoNativeString, porém ela remove a declaração do XML.

A codificação fica correta utilizando a função DecodeToString sem remover a declaração do XML.

Allan,

O XML tem que ficar com os "Entity code",  e em UTF8... caso contrário ele será um XML inválido...

Foi justamente essa a modificação promovida...

Abrir o XML no Internet Explorer, exibe ele corretamente ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Isso pode ter sido causado, no seu processo de salvar e ler do BD...

Eu acho pouco provável que esteja errado, porque estamos salvando o XML resultante imediatamente após as operações de Descompactação e decodificação da Base64.. Ou seja... é como foi enviado pelo SEFAZ

Se possível, por favor anexe o conteúdo em Base64, da Tag <DocZip>, referente ao XML acima

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Sim, e basicamente eu resolvo isso com a função ConverteXMLtoNativeString.
Apenas sugeri em utilizar o DecodeToString ao invés do ParseText diretamente na variável StrDecod, visto que a mesma é chamada dentro do ParseText.

Desta forma solucionaria ambos os problemas, pois não teria o replace dos "entity code".

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Mas quando atribuímos os valores das Tags para dentro das propriedades do Objeto, ambas operações são necessárias.... Transformar a String de UTF8 para a String Nativa da IDE, e substituir os entity code

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1930 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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

The popup will be closed in 10 segundos...