Ir para conteúdo
  • Cadastre-se

dev botao

"access Violation" Ao Executar Consulta De Nota Fiscais E Envio De Evento


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

Recommended Posts

Boa tarde, 

Tentei enviar essa mensagem no "Mantis", mas não consegui acessar..

 

Quando o usuário executa consulta de status em notas fiscais ou tenta enviar algum evento e existe problema em sua conexão com a internet, acaba recebendo o erro de "Access violation"

 

Eu depurei entre as units do ACBr e encontrei as causas do erro, implementei então algumas correções.

Gostaria de compartilhar com quem tiver o problema e solicitar aos programadores colaboradores que insiram a correção no pacote ou vejam a melhor forma de solucionar o problema.

 

 

Seguem:

 

Erro "Access Violation" na consulta de nota fiscais
 
Arquivo: acbr\fontes\ACBrNFe2\ACBrNFeWebServices.pas
Método: TNFeConsulta.Executar
 
Quando ocorre tudo certo com a consulta, o método "NFeRetorno.LerXML" (Linha 2519) instancia a propriedade NFeRetorno.procEventoNFe...
porém, caso ocorra algum erro de conexão, o método "NFeRetorno.LerXML" não instancia esse objeto, causando "Access Violation" ao usar a propriedade no decorrer do método "TNFeConsulta.Executar"

 

 
Minha solução provisória:
 
adicionei antes da Linha 2523, as instruções:

 

    if (not Assigned(NFeRetorno.procEventoNFe)) then
      NFeRetorno.procEventoNFe := TRetEventoNFeCollection.Create(NFeRetorno);
 
 
Erro "Access Violation" ao enviar evento
 
Arquivo: acbr\fontes\ACBrNFe2\ACBrNFeWebServices.pas
Método: TNFeEnvEvento.Executar
 
Quando passa pela linha 3867 ("FEventoRetorno.Free") a propriedade FEventoRetorno é liberado da memória, se ocorrer tudo certo no envio do evento, não tenho problema..
Porém se houver algum problema na validação (antes de comunicar com a SEFAZ) a propriedade FEventoRetorno não é novamente criada, 
e quando o usuário corrige os problemas e tenta enviar novamente, ao passar mais uma vez pela linha 3867 causa "Access Violation", uma vez que a propriedade FEventoRetorno tem um endereço atribuído, mas não existe mais o local apontado.
 
Minha solução provisória:
 
alterei a linha 3867 de "FEventoRetorno.Free" para "FreeAndNil(FEventoRetorno)"

 

 

 

Atenciosamente.

 

 

 
Editado por GutoSantos
Link para o comentário
Compartilhar em outros sites

Oi,

Não sei se é o mesmo caso, mas ao proceder o cancelamento p/ evento dá erro com base na rotina do Regys,

msg: "Arquivo C:\GLA2000\Schemas\envEventoCancNFe_v1.00.xsd não encontrado."

Tentei imprimir o evento... e deu msg: "Campo cOrgao não informado".

Neste caso, o aplicativo está rodando no cliente.

 

Fico agradecido por retorno...

 

gilsonlongo

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Veja a resposta a sua pergunta no outro tópico que você postou a mesma pergunta

 

Oi,

Não sei se é o mesmo caso, mas ao proceder o cancelamento p/ evento dá erro com base na rotina do Regys,

msg: "Arquivo C:\GLA2000\Schemas\envEventoCancNFe_v1.00.xsd não encontrado."

Tentei imprimir o evento... e deu msg: "Campo cOrgao não informado".

Neste caso, o aplicativo está rodando no cliente.

 

Fico agradecido por retorno...

 

gilsonlongo

 

.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...