Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Consultores
Postado

Boa tarde,

 

O problema é que antes o componente removia os acentos das vogais e trocava o cedilha por C que conta-se nos retornos e ao ler os XML.

 

Se você abrir o XML que você postou com o bloco de notas e procurar por cedilha e vogais acentuadas e fazer as trocas, vai conseguir visualiza-lo sem nenhum problema com um navegador.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado (editado)

Bom dia 

 

Download do xml da NFe de terceiro depois de manisfestado esta dando erro pcnRetDownloadNFe

 

          try
            try
              // XML da NF-e
              StrAux := RetornarConteudoEntre(Leitor.Grupo, '<NFeZip>', '</NFeZip');
              StrDecod := DecodeBase64(StrAux);
              StrStream.WriteString(StrDecod);
              FretNFe.Items.FNFeZip := UnZipMsg(StrStream);
 
              // XML do Protocolo da NF-e
              StrAux := RetornarConteudoEntre(Leitor.Grupo, '<protNFeZip>', '</protNFeZip');
              StrDecod := DecodeBase64(StrAux);
              StrStream.WriteString(StrDecod);
              FretNFe.Items.FProtNFeZip := UnZipMsg(StrStream);
            except
              on e : Exception do
              begin
                Raise Exception.Create(e.message);
              end;
            end;
          finally
            FreeAndNil(StrStream);
          end;
 
 
Comentando estas linhas desse try
 

              // XML do Protocolo da NF-e
//              StrAux := RetornarConteudoEntre(Leitor.Grupo, '<protNFeZip>', '</protNFeZip');
//              StrDecod := DecodeBase64(StrAux);
//              StrStream.WriteString(StrDecod);
//              FretNFe.Items.FProtNFeZip := UnZipMsg(StrStream);
 
funciona perfeitamente o download.
Editado por Lazaro Pavao
Postado

Olá notei que aqui ele aponta como erro logo após o caractere &, percorrendo na internet indicações de que esse caractere pode dar problemas de formatação incorreta.

 

 

Alterei o & na tag xNome para "e" e aqui abriu normalmente.

 

Espero que te ajude

  • Membros Pro
Postado

Olá Tiago,

 

realmente, tirando o "&" o arquivo passou a abrir normalmente.

Eu vi o Italo postando que antes o componente tirava as letras acentuadas e os caracteres inválidos do XML que ele baixava e, aparentemente, agora não faz mais.

Tu saberias como contornar isso?

 

Desde já agradeço muito, porque agora, pelo menos, já sei onde está pegando.

 

Abraço!

  • Curtir 1
Postado

Não te dou a certeza, o pessoal que desenvolve mais efetivamente o componente pode confirmar melhor mas, desde sempre trabalho com essa propriedade como true e até hj nunca tive esse tipo de problema

  • 1 mês depois ...
Postado

Olá amigos, estou retomando novamente esse tópico devido a problemas no arquivo XML que foi feito download após o manifesto, o problema havia sido resolvido e voltou a acontecer novamente, percebi que o XML está vindo malformado, com tags a mais desnecessárias, já atualizei meu acbr e não resolveu, em anexo estou colocando o XML com o problema. Vale ressaltar que esse problema não acontece com todos os downloads que meu cliente efetua, acontece apenas em alguns.

 

estou utilizando o seguinte comando para efetuar o download:

 

ACBRNFe.WebServices.DownloadNFe.Executar;

 

 

MASTER ATS SUPERMERCADOS LTDA - NF 12711 - 01-04.xml

  • Consultores
Postado

Boa tarde Rodrigo,

 

Quais são as TAGs desnecessárias no XML que você anexou?

 

Outra coisa, em vez de você utilizar o método Download, porque não utiliza o DistribuicaoDFe?

 

Ele também retorna o XML completo de uma nota quando esta já tenha sido manifestada, com uma vantagem, ser você manifestou 5 notas o DistribuicaoDFe retorna todas elas.

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Ok Italo, vou pesquisar sobre essa DistribuicaoDFe, pra mim é novo, eu não conhecia.

Vou pesquisar exemplos, qualquer dúvida peço ajuda. 

Sobre as tags que estão vindo a mais no XML que postei eu não sei ao certo quais são, pois não consegui arrumar ele manualmente para descobrir.

  • 1 mês depois ...
Postado

Olá,

   Ao efetuar o Download(ACBrNFe1.Download) da nota o XML que é extraído do ZIP contém o seguinte texto em algumas tags:  

<infAdProd>Resolu褯 do Senado Federal nڠ13/12,  No da FCI 9c895984-567d-4ef8-ba87-620da116c63b,  Contede Importa褯 50 %</infAdProd> 

  O XML tem caracteres especiais no texto.

 

  Desta forma ao tentar ler este XML em um outro momento(ACBrNFe1.NotasFiscais.LoadFromFile), a rotina não esta conseguindo ler o arquivo e carregar o "TStringList"(ArquivoXML):  

function TNotasFiscais.LoadFromFile(CaminhoArquivo: String; AGerarNFe: Boolean = True): Boolean;
...
ArquivoXML := TStringList.Create;
    try
      ArquivoXML.LoadFromFile(CaminhoArquivo {$IFDEF DELPHI2009_UP}, TEncoding.UTF8{$ENDIF});
...

  A variável "ArquivoXML.Text" esta vazia.

 

  Alguém já passou por um caso similar?

 

No aguardo.
Obrigado.

Carlos H. Marian

Analista de Sistemas

|/-\|

Postado

Encontrei uma forma de contornar meu problema relatado acima.

Passei a ler o arquivo xml por um "FileStream", que depois converto para String;

Desta forma estou usando o NotasFiscais.LoadFromString, passando com parâmetro o String convertido.

 

At+

Carlos H. Marian

Analista de Sistemas

|/-\|

Postado

Bom dia, 

 

  Também estou com o mesmo problema do colega rrodrigoffernandes. Estou utilizando o comando "ACBRNFe.WebServices.DownloadNFe.Executar;", e também estou recebendo XML's inválidos.

 

  Dei uma analisada, e descobri que no fim do arquivo, entre o fim da tag <NFe> e o início da tag <protNFe> o XML está com este valor : "<?xml version="1.0" encoding="utf-8"?>" (que geralmente está no início dos arquivos XML). Após remover este conteúdo, o XML passa a ser válido.

 

  A dúvida é, tenho que tratar isso no meu código, ou seria algum problema no método do Download?

Postado
Encontrei o possível problema. Dentro do arquivo "pcnRetDownloadNFe.pas", no método "LerXml", existem 3 linhas com um comentário indicando "(*JR12 *)". Alterei removendo o conteúdo " '<'+ENCODING_UTF8+'>' " que havia alimentando a variável, e o download começou a salvar o XML correto. 
 
Segue em anexo o arquivo, para quem quiser testar.
 

pcnRetDownloadNFe.pas

  • Curtir 1
Postado

Boa tarde,

 

  Fui gerar o XML e notei que o ocorreu o erro novamente, mesmo com a alteração. Então, após uma nova análise, descobri que no momento de buscar o conteúdo dentro da tag <protNFeZip>  e descompactar, ele acaba recebendo o valor "<?xml version="1.0" encoding="utf-8"?>" antes da tag <protNFe>. Em Anexo os 2 XML's, com o código original e o código alterado.

 

 Abaixo o código onde a operação é realizada.

 

Antes:

          // XML do Protocolo da NF-e
          StrStream := TStringStream.Create('');
          try
            try
              StrAux := RetornarConteudoEntre(Leitor.Grupo, '<protNFeZip>', '</protNFeZip');
              StrDecod := DecodeBase64(StrAux);
              StrStream.WriteString(StrDecod);
              FretNFe.Items[i].FProtNFeZip := UnZipMsg(StrStream);
            except
              on e : Exception do
              begin
                Raise Exception.Create(e.message);
              end;
            end;
          finally
            FreeAndNil(StrStream);
          end;

Depois (Apenas um modo de solucionar o problema. Talvez vocês saibam uma maneira melhor de fazer isso):

          // XML do Protocolo da NF-e
          StrStream := TStringStream.Create('');
          try
            try
              StrAux := RetornarConteudoEntre(Leitor.Grupo, '<protNFeZip>', '</protNFeZip');
              StrDecod := DecodeBase64(StrAux);
              StrStream.WriteString(StrDecod);
              FretNFe.Items[i].FProtNFeZip := UnZipMsg(StrStream);
              FretNFe.Items[i].FProtNFeZip := '<protNFe' + RetornarConteudoEntre(FretNFe.Items[i].FProtNFeZip, '<protNFe', '</protNFe>') + '</protNFe>';
            except
              on e : Exception do
              begin
                Raise Exception.Create(e.message);
              end;
            end;
          finally
            FreeAndNil(StrStream);
          end;

Antes_43150502656032000175550010000011931000011934-nfe.xml

Depois_43150502656032000175550010000011931000011934-nfe.xml

Antes_43150502656032000175550010000011931000011934-nfe.xml

Depois_43150502656032000175550010000011931000011934-nfe.xml

Postado

Boa tarde,

 

  Atualizei os fontes, e está funcionando corretamente agora. Porém, notei que você também comentou onde era incluso a variável "ENCODING_UTF8", que foi o que indiquei como problema no primeiro comentário. Isso não causa problemas, mas você pode descomentar estas variáveis, pois só aquele tratamento para recortar o conteúdo dentro da tag <protNFe> já resolve tudo.

  • Curtir 1
  • 6 meses depois ...
  • Este tópico foi criado há 3129 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.