Ir para conteúdo
  • Cadastre-se

dev botao

XML de retorno com acentuação


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

Recommended Posts

Boa noite,

Fiz alguns testes de homologação com o Betha e BHISS, e percebi que em alguns casos o XML era retornado com acentuação, causando assim problemas para cancelar e imprimir a NFSe. 

Inclusive conversei com o Italo, o qual foi quem identificou o problema nos XML que lhe passei.

Para resolver o problema, alterei a AcbrDFe.pas, alterando a function TACBrDFe.Gravar, inclui uma rotina da Trunk, para retirar os acentos do XML de retorno antes de gravar.

//---------------------------------------------------------------------------------------------------------------------------

function TACBrDFe.Gravar(NomeArquivo: String; ConteudoXML: String;
  aPath: String; ConteudoEhUTF8: Boolean): Boolean;
var
  UTF8Str, SoNome, SoPath: String;
  i : Integer;
const
  COM_ACENTO = 'àâêôûãõáéíóúçüîäëïöèìòùÀÂÊÔÛÃÕÁÉÍÓÚÇÜÎÄËÏÖÈÌÒÙ';
  SEM_ACENTO = 'aaeouaoaeioucuiaeioeiouAAEOUAOAEIOUCUIAEIOEIOU';
begin
  for i := 1 to Length(ConteudoXML) do
   begin
     if Pos(ConteudoXML, COM_ACENTO) <> 0 then
       ConteudoXML := AnsiChar(SEM_ACENTO[Pos(ConteudoXML, COM_ACENTO)]);
     if not (ConteudoXML in [' '..'~']) then
       ConteudoXML := ' ';
   end;

//---------------------------------------------------------------------------------------------------------------------------

Feito isso, realizei novos testes, e funcionou normalmente.

Não sei se ali era o lugar ideal, foi funcionou. 

Segue o fonte, caso queria anexar no repositório.

 

Dercide.

ACBrDFe.rar

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde a todos,

Acredito que a solução poderia ser diferente, vou analisar uma outra.

  • Curtir 2
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

  • Moderadores

Hoje fui atualizar minha rotina de emissão de nfs-e e reparei nessa questão também. A sugestão do Dercide é muito boa.

Entretanto vamos aguardar uma posição do Ítalo. Até porque os dados da nfs-e já vem assim dos webservices e, alterar esses dados, mesmo que seja pra corrigir acentuação, pode invalidar a assinatura ao meu ver.

Editado por Cleber

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

Eu fiz dessa maneira, pois estou com um problema serio no meu note com Windows 10,,,,não consigo enviar nada,,,,estou com problemas nos certificados,,,,quando instalo eles funcionam a primeira vez,,,,ai faço uma consulta ou envio uma NFe,,,ou NFSe,,,,,e pronto já não funciona mais.

Com isso não consegui debugar a fundo,,,e procurar um local melhorar para fazer a alteração adequada para trocar a acentuação.

No meus testes, que verifiquei que os campos que retornam acentuação são os seguintes :

BHISS => RazaoSocial ( provavelmente foi cadastrado no site com acentução)

                 <OutrasInformacoes>NFS-e gerada em ambiente de teste. NÃO TEM VALOR JURÍDICO NEM FISCAL.</OutrasInformacoes>

Betha==> <Discriminacao>Descrição: 1 )....................</Discriminacao>

                 <Endereco>Ambiente de testes não requer endereço</Endereco>

 

No caso da Betha, a palavra Descrição veio no retorno do XML, ela não foi enviada junto com a Descrição

Se alguém souber quais as rotinas que pegam os campos de retorno, posso dar uma olhada e tentar outra solução, pois no momento não estou conseguindo Debugar nada por causa dos certificados.

 

Dercide.

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia a todos,

Fiz uma alteração na rotina que extrai o XML do retorno do web services.

Caso a propriedade de configuração RetirarAcentos estiver com o valor True os acentos serão removidos.

Favor atualizar os fontes e realizar novos testes.

  • Curtir 1
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

  • Moderadores

Perfeito Italo!

Testei as rotinas de emissão, cancelamento e consulta.

Só uma observacao com relação a impressão da DANFS-e. No PDF gerado ta sendo acrescentado o numero "1" ao final. Não seria interessante retira-lo?

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Cleber,

Como os DA agora é em Fortes ou Fast não tenho condições de fazer as devidas correções por não ter conhecimento sobre esses Report.

Esse "1" que aparece é só ao gerar o PDF ou na impressão também?

Em qual Report isso esta ocorrendo?

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

  • Consultores

Boa tarde Cleber,

Esse "1" que aparece no final do nome, não é a série?

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

  • Moderadores
22 minutos atrás, Italo Jurisato Junior disse:

Boa tarde Cleber,

Esse "1" que aparece no final do nome, não é a série?

É isso mesmo Ítalo. Desconsidere minha observação.

 

Grato.

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...
  • Consultores

Bom dia,

O componente Gera o XML do RPS e neste com a propriedade ativada acredito que não é para conter vogais acentuadas e cedilha.

Por outro lado o XML da NFS-e (o que você anexou) é gerado pelo provedor, o componente apenas o obtêm pelo retorno e salva em disco.

Sendo assim a propriedade não atua nesse processo.

Sendo assim, se o provedor gerar o XML da NFS-e com palavras acentuadas, estas vão estar presentes e o componente não vai altera-las.

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

  • 2 meses depois ...

Ola Ítalo. Sobre o tópico anterior estive vendo que os sistemas que estão executando com os componentes anteriores a instalação do truck dois estão gerando o xml sem acentuação, e os que estão já executando com o trunk2 estão gerando com acentuação, na duvida removi todos os componentes e instalei novamente mas o problema persiste, gostaria de saber se existe alguma procedimento que possa estar fazendo para solucionar este problema.

Segue em anexo os dois xml sendo que o 64-nfse gerado pelo sistema anterior do trunk2

64-nfse.xml

121-nfse.xml

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde,

Atribua o valor True a propriedade: Configuracoes.Geral.RetirarAcentos

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

  • Consultores

Boa noite,

Estranho pois todos os métodos executam a função ExtrairRetorno() e nesta contem a seguinte linha:

  if FPConfiguracoesNFSe.Geral.RetirarAcentos then
    AuxXML := TiraAcentos(AuxXML);

 

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

Ola, Ítalo estou usando o comando enviar, talvez esteja usando o procedimento errado.

         vAux       :=qrnota.fieldbyname('numero').AsString;   // Numero RPS
         vNumLote   :=qrnota.fieldbyname('numero').AsString;   // Numero Lote

         ACBrNFSe.NotasFiscais.Clear;
         AlimentaComponente(vAux);
         ACBrNFSe.Configuracoes.Geral.RetirarAcentos :=True;
         CBrNFSe.Enviar(vNumLote);
         frmmodulo.Conexao.StartTransaction;
         qryAuxiliar.Close;
         qryAuxiliar.SQL.Clear;
         qryAuxiliar.SQL.Add('update nf_servicos set  nota =:nota, ');
         qryAuxiliar.SQL.Add('cod_verificacao =:codV, lote_rps =:lRps, protocologo =:prot, sit =:sit,email =:email ');
         qryAuxiliar.SQL.Add('where codigo =:cod');
         qryAuxiliar.ParamByName('cod').AsInteger       :=qrnota.fieldbyname('codigo').AsInteger;
         qryAuxiliar.ParamByName('codV').AsString       :=ACBrNFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao;
         qryAuxiliar.ParamByName('lRps').AsString       :=ACBrNFSe.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Numero;
         qryAuxiliar.ParamByName('prot').AsString       :=ACBrNFSe.NotasFiscais.Items[0].NFSe.Protocolo;
         qryAuxiliar.ParamByName('nota').AsString       :=ACBrNFSe.NotasFiscais.Items[0].NFSe.Numero;
         qryAuxiliar.ParamByName('sit').AsInteger          :=6;
         qryAuxiliar.ParamByName('email').AsInteger     :=6;
         qryAuxiliar.ExecSQL;
         frmmodulo.Conexao.Commit;

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde,

A questão não é o Enviar e sim o tratamento feito no XML de retorno seja qual ele for.

No caso do componente ACBrNFSe, todos os métodos possui uma função chamada TratarResposta e todas chamam a função ExtrairRetorno.

E como já dito na função ExtrairRetorno é verificado o valor da propriedade RetirarAcentos, caso seja True é trocado as vogais acentuadas por não acentuadas e o cedilha pela letra "c".

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

  • Este tópico foi criado há 2762 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.