Jump to content

click.png

click.png

click.png

click.png click.png click.png

click.png click.png click.png

click.png

click.png

click.png

click.png

click.png

click.png

Erro ao enviar requisição GNRE


Go to solution Solved by Daniel Simoes,
  • Este tópico foi criado há 563 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá, estou enfrentando dificuldades com erros que estão ocorrendo nas versões mais recentes no Projeto ACBR.

Estou recebendo erros de comunicação, estou com a versão do dia 24/01/2020  e está funcionando normalmente, porém se eu atualizar para a versão mais recente no caso em questão é do dia 30/04/2020, passo a ter erros de conexão com a SEFAZ, tanto na Nfe quanto em GNRE ou CTE.

Obs: Compilado em 32 bits no Delphi Rio.

 

Aparentemente a mensagem do erro está pegando lixo de memória.

Segue StackTrace do erro:

Erro: 
Falha Enviando a Requisição. Erro: 0 - 2 0 1 0 5 7 7                        0 1 5 1 0 2 0 1 0 5 7             1 0 0 1 0 2   R                                                      
                                                                                                                                                          1 0 0 1 0 2       
                               
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ÿò   q     u s   L I M I T   1   )
StackTrace: 0080e971 TransmissoresSefaz.exe ACBrDFe                                  627 TACBrDFe.GerarException
00815fe7 TransmissoresSefaz.exe ACBrDFeWebService                        528 TDFeWebService.GerarException
00814acd TransmissoresSefaz.exe ACBrDFeWebService                        218 TDFeWebService.Executar
771c012e ntdll.dll                                                           KiUserExceptionDispatcher
007d9700 TransmissoresSefaz.exe ACBrDFeHttpWinApi                         95 TDFeHttpWinHttp.Execute
007de8b0 TransmissoresSefaz.exe ACBrDFeSSL                              1062 TDFeSSLHttpClass.HTTPMethod
007de6dd TransmissoresSefaz.exe ACBrDFeSSL                              1045 TDFeSSLHttpClass.Enviar
007dff0e TransmissoresSefaz.exe ACBrDFeSSL                              1412 TDFeSSL.Enviar
008158d6 TransmissoresSefaz.exe ACBrDFeWebService                        412 TDFeWebService.EnviarDados
00814a42 TransmissoresSefaz.exe ACBrDFeWebService                        206 TDFeWebService.Executar
01326709 TransmissoresSefaz.exe rp.gnre.business.envGnre                 349 TGnreService.send
01326f64 TransmissoresSefaz.exe rp.app.business.task.envioGnre            54 TEnvioGnreTask.sendLocal
0132721b TransmissoresSefaz.exe rp.app.business.task.envioGnre            92 TEnvioGnreTask.executeBatch
013276cb TransmissoresSefaz.exe rp.app.business.task.envioGnre           139 TEnvioGnreTask.process
01327ca6 TransmissoresSefaz.exe rp.app.business.task.envioGnre           212 TEnvioGnreTask.execute
011a0332 TransmissoresSefaz.exe rp.core.app.controller.baseTaskManager   431 TBaseTaskManager.processTask
011a12eb TransmissoresSefaz.exe rp.core.app.controller.baseTaskManager   633 TBaseTaskManager.run
01253909 TransmissoresSefaz.exe rp.core.app.main                         162 TTransmissoresSefazRP.runner
01164e97 TransmissoresSefaz.exe rp.core.app.runnerThread                  33 TRunnerThread.Execute
00489579 TransmissoresSefaz.exe System.Classes                         15040 ThreadProc
0040b738 TransmissoresSefaz.exe System                                 24940 ThreadWrapper

76aa343b kernel32.dll                                                        BaseThreadInitThunk

 

image.thumb.png.1d5e1c569c9e267c178ea811c808097b.png

 

 

 

 

Edited by RP INFO Desenvolvimento
Link to comment
Share on other sites

  • Consultores

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

Bom dia.

Você reproduz o mesmo no demo?

Quais são as configurações do componente?

Att.

Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link to comment
Share on other sites

20 minutos atrás, Juliana Tamizou disse:

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

Bom dia.

Você reproduz o mesmo no demo?

Quais são as configurações do componente?

Att.

Olá, não testei com a demo, como eu falei com a versão do mês de janeiro funciona, porém quando atualizo para a versão que está no SVN, passo a ter estes erros.

Obs: Estou emitindo em produção, para a UF "GO".

segue código da configuração do componente:

class function TAcbrUtilGnre.buildAcbr(context: TAppContext): TACBrGNRE;
var
  acbrGnre: TACBrGNRE;
begin
  acbrGnre:=TACBrGNRE.Create(nil);
  with acbrGnre.Configuracoes.Geral do begin
    SSLLib                := libWinCrypt;
    SSLCryptLib           := cryWinCrypt;
    SSLHttpLib            := httpWinHttp;
    SSLXmlSignLib         := xsMsXml;
  
    ExibirErroSchema := true;
    RetirarAcentos   := true;
    FormatoAlerta    := '';
    FormaEmissao     := teNormal;
    VersaoDF         := pgnreConversao.ve100;
    Salvar           := false
  end;

  acbrGnre.SSL.SSLType:=LT_TLSv1_2;
  acbrGnre.Configuracoes.WebServices.SSLType:=LT_TLSv1_2;
  acbrGnre.Configuracoes.WebServices.TimeOut:=context.transmissor.TimeOut * 1000;
  acbrGnre.Configuracoes.Arquivos.Salvar:=false;
  acbrGnre.Configuracoes.Arquivos.PathGNRE:='';
  acbrGnre.Configuracoes.Arquivos.PathArqTXT:='';
  acbrGnre.Configuracoes.Arquivos.PathSalvar:='';
  acbrGnre.Configuracoes.Arquivos.PathSchemas:=TAppFunctions.getPath + 'schemas\Gnre\';
  acbrGnre.SSL.LerCertificadosStore;
  acbrGnre.Configuracoes.WebServices.Ambiente:=TAcbrUtilGnre.convertToAmbiente(context.transmissor.tipoAmbiente.toName);
  result:=acbrGnre;
end;

 

 

Link to comment
Share on other sites

  • Consultores

Boa tarde.

Seria interessante também o teste com o demo.

Att.

Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link to comment
Share on other sites

  • Consultores

Boa tarde,

Altere a configuração:

SSLXmlSignLib         := xsMsXml;

para:

SSLXmlSignLib         := xsLibXml2;

E faça novos testes.

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

Link to comment
Share on other sites

1 hora atrás, Italo Jurisato Junior disse:

Boa tarde,

Altere a configuração:

SSLXmlSignLib         := xsMsXml;

para:

SSLXmlSignLib         := xsLibXml2;

E faça novos testes.

Alterei a configuração conforme solicitou, mas não resolveu o problema.

Depurei o código e identifiquei que no método "TACBrWinReqResp.GetWinInetError" o parâmetro "ErrorCode" está chegando com valor "0", e por este motivo não entra em nenhuma condição do case "case ErrorCode of", e por isso a variável "ErrorMsg" fica com lixo de memória, pois tem um SetLength(ErrorMsg, 1024); na linha 256 do arquivo "ACBrWinReqRespClass.pas", e por este motivo não captura o erro que ocorreu.

Seguem prints em anexo.

 

ErrorMsg_LixoMemória.png

SendData_False.png

ConfiguracaoSolicitada_Italo.png

DadosEnviados.png

  • Thanks 1
Link to comment
Share on other sites

  • Fundadores
22 horas atrás, RP INFO Desenvolvimento disse:

Depurei o código e identifiquei que no método "TACBrWinReqResp.GetWinInetError" o parâmetro "ErrorCode" está chegando com valor "0", e por este motivo não entra em nenhuma condição do case "case ErrorCode of", e por isso a variável "ErrorMsg" fica com lixo de memória, pois tem um SetLength(ErrorMsg, 1024); na linha 256 do arquivo "ACBrWinReqRespClass.pas", e por este motivo não captura o erro que ocorreu.

Isso não é lixo... a API do Windows usar WideString, que são 16bits por Caracteres

Não consegui ver no tópico... Qual é a exata msg de erro ?

Por favor teste com o Demo do ACBr... ele é o unico projeto, que nós temos em comum, com você.. então se o erro ocorrer nele, nós aqui, podemos investigar e debugar

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 to comment
Share on other sites

2 horas atrás, Daniel Simoes disse:

Isso não é lixo... a API do Windows usar WideString, que são 16bits por Caracteres

Não consegui ver no tópico... Qual é a exata msg de erro ?

Por favor teste com o Demo do ACBr... ele é o unico projeto, que nós temos em comum, com você.. então se o erro ocorrer nele, nós aqui, podemos investigar e debugar

Sim, é lixo de memória, note que éfeito um setLength para 1024, mas não é carregado nenhum conteúdo nela, pois não entra em nenhuma das condições, apenas fica com o que já estava na memória.

Tem situações que pega strings do Projeto que nem estão mais alocadas, tenho exemplos que pega partes de SQL, tem momentos que pega byte 0 nas posições, e por isso gera erros.

Eu solucionei meu problema mudando a configuração SSLHttpLib para "httpWinINet" no lugar de "httpWinHttp". 

Link to comment
Share on other sites

  • Fundadores
2 horas atrás, Daniel Simoes disse:

Não consegui ver no tópico... Qual é a exata msg de erro ?

Por favor teste com o Demo do ACBr... ele é o unico projeto, que nós temos em comum, com você.. então se o erro ocorrer nele, nós aqui, podemos investigar e debugar

Ainda preciso dessas informações... para analise...

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 to comment
Share on other sites

15 horas atrás, Daniel Simoes disse:

Ainda preciso dessas informações... para analise...

Olá realizei o teste com a demo da GNRE, o erro também ocorre neste projeto.

Note que na mensagem de erro agora pegou parte do XML, ou seja, é lixo de memória.

Obs: Ocorre quando eu configuro o SSLType como "LT_TLSv1_2", com "LT_all" não dá erro.

 

Obrigado pela atenção.

 

 

ErroDemoGnreACBR.png

MensagemErroDemo.png

  • Thanks 1
Link to comment
Share on other sites

  • Fundadores
  • Solution

Realmente, por algum motivo, a WinAPI, não está retornando nada em GatLastError, após a falha da chamada em WinHttpSendRequest

Apliquei algumas modificações em ACBrWinReqRespClass.GetWinInetError, para esse tipo de situação...  Commit [r19809]

Em 06/05/2020 at 18:01, RP INFO Desenvolvimento disse:

Eu solucionei meu problema mudando a configuração SSLHttpLib para "httpWinINet" no lugar de "httpWinHttp". 

Isso fará o ACBr usar a API do Internet Explorer, que é mais antiga que a WinHTTP, e pode depender de configurações nos protocolos de segurança, no I.E.

  • Thanks 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.

Link to comment
Share on other sites

  • Fundadores

Fizemos alguns ajustes, relacionados a esse  problema

https://sourceforge.net/p/acbr/code/19879/
https://sourceforge.net/p/acbr/code/19880/

  • Like 1
  • Thanks 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.

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.