Ir para conteúdo
  • Cadastre-se

dev botao

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

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...