Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Consultores
Postado

Bom dia Hugo,

O grande problema é que essa é a unica chamada ao Web Service que contem uma palavra acentuada: "NÃO".

A SEFAZ-RS precisa levar um puxão de orelha e tirar o acento, ai resolve todos os problemas.

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

  • Consultores
Postado

Bom dia Hugo,

Notei que a alteração que você realizou foi feita em cima de uma unit desatualizada.

Sendo assim, sugiro que você faça uma cópia da sua alteração e atualize todos os fontes de todas as pastas de tal forma que todos os fontes fiquem com uma bolinha verde em seus ícones.

Depois recompile a aplicação com a opção Build.

E refaça os testes.

Outra coisa, qual é a versão do seu Delphi?

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

  • Consultores
Postado

Bom dia Hugo,

Por favor abra a unit pmdfeConsMDFeNaoEnc e verifique se na linha 102 esta da seguinte forma:

 Gerador.wCampo(tcStr, 'CP04', 'xServ', 24, 24, 1, 'CONSULTAR NÃO ENCERRADOS', DSC_XSERV);

Ou se existe alguma function que recebe a string em negrito como parâmetro.

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)

Italo, esta da forma que falo, abaixo a função GerarXML.

 

Function TConsMDFeNaoEnc.GerarXML: Boolean;
begin
 Gerador.ArquivoFormatoXML := '';

 Gerador.wGrupo('consMDFeNaoEnc ' + NAME_SPACE_MDFE + ' versao="' + Versao + '"');
 Gerador.wCampo(tcStr, 'CP03', 'tpAmb', 01, 01, 1, tpAmbToStr(FtpAmb), DSC_TPAMB);
 Gerador.wCampo(tcStr, 'CP04', 'xServ', 24, 24, 1, 'CONSULTAR NÃO ENCERRADOS', DSC_XSERV);
 Gerador.wCampo(tcEsp, 'CP05', 'CNPJ ', 14, 14, 1, OnlyNumber(FCNPJ), DSC_CNPJ);
 Gerador.wGrupo('/consMDFeNaoEnc');

 Result := (Gerador.ListaDeAlertas.Count = 0);
end;

Editado por Hugo Vinicius
  • 2 semanas depois ...
Postado
Em 24/02/2016 at 01:07, Hugo Vinicius disse:

Boa noite Italo,

Desculpe a demora, mesmo atualizado o fonte e compilando o projeto o erro continua, segue em anexo o DEBUG.

Observação: Realizei o merge da minha correção, favor avaliar.

Atenciosamente

Hugo Vinicius

Debug 2 - Depois de usar ConverteXMLtoUTF8.png

Debug 1 - Antes da usar ConverteXMLtoUTF8.png

ACBrDFeWebService.pas

Também estou com o mesmo problema de caractere especial no NÃO. Existem alguma solução para contornar o problema até sair um correção oficial?

Postado

Bom dia Italo,

Atualizei meu repositório para a revisão 11322 hoje e problema continou acontecendo.
Na unit ACBrUtil, metodo NativeStringToUTF8 é chamado o "SetCodePage(RBS, 0, False);" que altera a string "CONSULTAR NÃO ENCERRADOS" para "CONSULTAR NÃO ENCERRADOS", alterei para "SetCodePage(RBS, 0, True);" e problema não acontece. Testei a emissão e cancelamento de algumas notas, fiz consulta de status dos serviços e está tudo funcionando.

Obs.: Uso Delphi XE7.

  • Curtir 2
Postado
2 horas atrás, Italo Jurisato Junior disse:

Bom dia Gilvano,

Houve diversas alterações, não sei lhe dizer se com elas o seu problema foi resolvido.

Favor atualizar os fontes e realizar novos testes.

Bom dia Italo,

Atualizei meu repositório para a revisão 11409 e o problema continua. Ao entrar no método NativeStringToUTF8 e chamar o SetCodePage a string "CONSULTAR NÃO ENCERRADOS" é alterada para "CONSULTAR NÃO ENCERRADOS", ficando esse carácter "ƒ" que causa a rejeição do schema.

Esse código gera o carácter "ƒ":

function NativeStringToUTF8( AString : String ) : AnsiString;
{$IFNDEF FPC}
 {$IFDEF UNICODE}
  var
    RBS: RawByteString;
 {$ENDIF}
{$ENDIF}
begin
  {$IFDEF FPC}
    Result := AString;  // FPC usa UTF8 de forma nativa
  {$ELSE}
    {$IFDEF UNICODE}
      RBS := UTF8Encode(AString);
      SetCodePage(RBS, 0, False);
      Result := AnsiString(RBS);
    {$ELSE}
      Result := UTF8Encode(AString);
    {$ENDIF}
  {$ENDIF}
end;

Esse não:

function NativeStringToUTF8( AString : String ) : AnsiString;
{$IFNDEF FPC}
 {$IFDEF UNICODE}
  var
    RBS: RawByteString;
 {$ENDIF}
{$ENDIF}
begin
  {$IFDEF FPC}
    Result := AString;  // FPC usa UTF8 de forma nativa
  {$ELSE}
    {$IFDEF UNICODE}
      RBS := UTF8Encode(AString);
      SetCodePage(RBS, 0, True);
      Result := AnsiString(RBS);
    {$ELSE}
      Result := UTF8Encode(AString);
    {$ENDIF}
  {$ENDIF}
end;

Não tenho conhecimento se a troca desse parametro na chamada do SetCodePage pode gerar outro problema ou não.

  • Fundadores
Postado
Em 15/03/2016 at 09:35, Gilvano Piontkoski disse:

"CONSULTAR NÃO ENCERRADOS" é alterada para "CONSULTAR NÃO ENCERRADOS"

Gilvano,

É exatamente o que a função " NativeStringToUTF8" faz... isso está correto e não será modificado...

Delphi não usa UTF8, por isso ele exibe no Debug de forma incorreta...

 

Qual é exatamente o problema ? E como reproduzi-lo, com os Demos do ACBr ?

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.

Postado

Bom dia Daniel,

Segue o problema.

Boa Tarde

A função ConsultaMDFeNaoEnc, esta retornando a mensagem “Falha no Schema XML”, segue em anexo os XML, eles estão com alguns caracteres estranhos.

Observação: O envio e o encerramento do MDFe está funcionando normalmente,

Muito Obrigado

Consultar não encerrados.jpg

20160219140713-ped-cons.xml

20160219140713-ped-cons-soap.xml

20160219140716-cons.xml

20160219140716-cons-soap.xml

Muito Obrigado

Hugo Vinicius

  • Fundadores
Postado

Fiz teste no XE7,  e não notei problemas no envio... o XML está sendo convertido para UTF8 corretamente... E obtive com sucesso a resposta do WebService...

Entretanto encontrei problemas no método: "TDFeWebService.SalvarEnvio", que erroneamente presumia, que o XML a ser enviado sempre estava em UTF8, e isso somente será verdade, se o XML já passou pelo processo de assinatura...

Enviei a seguinte correção para o SVN:

-- ACBrDFeWebService --
[-] Método: "SalvarEnvio", correção para conversão de XML para UTF8, quando o
    mesmo não foi previamente assinado     (por: DSA) 

 

Verifique:
- Se seus fontes do ACBr estão corretamente atualizados...
- Se os seus Schemas estão atualizados...

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

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