Ir para conteúdo
  • Cadastre-se

dev botao

ACBRTEFD acess violation no InfoEcf


Ver Solução Respondido por JéssicaMillene,
  • Este tópico foi criado há 1867 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia,

Fiz uma aplicação de teste para fazer a integração do SITEF da Software Express, na aplicação teste tudo funciona perfeitamente, mas, quando vou colocar na minha aplicação comercial da erro de acess violation quando o evento InfoECF é chamado.

Segue método do evento:

var
   RSubTotal: Double;
begin
   case Operacao of
     ineSubTotal :
       begin
         RSubTotal := RTotalPag;
         RetornoECF := FloatToStr(RSubTotal);
         if estadoSimuladoEcf = tpsPagamento then
           RetornoECF := FloatToStr(0);
       end;

     ineTotalAPagar :
       RetornoECF := '0';
     ineEstadoECF :
       begin
         Case estadoSimuladoEcf of
           tpsLivre     : RetornoECF := 'L' ;
           tpsVenda     : RetornoECF := 'V' ;
           tpsPagamento : RetornoECF := 'P' ;
           tpsRelatorio : RetornoECF := 'R' ;
         else
           RetornoECF := 'O' ;
         end;
       end;
   end;
end;     

Segue o log:

-- 10/02 23:40:37:274 - *** ConfiguraIntSiTefInterativoEx. EnderecoIP: 127.0.0.1 CodigoLoja: 00000000 NumeroTerminal: SW000001 Resultado: 0 ParametrosAdicionais: []
-- 10/02 23:40:38:106 - CliSiTef Inicializado CliSiTEF
-- 10/02 23:40:39:122 - CliSiTef CancelarTransacoesPendentesClass 
-- 10/02 23:40:42:777 - InfoECF: ineEstadoECF

Arquivo CliSiTef.ini:

[CliSiTef]


HabilitaTrace=1


[PinPadCompartilhado]


Porta=AUTO_USB


ModoOperacaoCargaPinPad=0


[Geral]


TransacoesAdicionaisHabilitadas=1;29;42;

Link para o comentário
Compartilhar em outros sites

  • Consultores

Em qual linha dá o erro. Qual é a exata mensagem de erro?

  • Curtir 2

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

No erro não informa a linha especifica de onde ocorre, apenas "Access Violation".

Acredito que seja no evento OnInfoEcf, pois não chega a retornar o estado do ECF simulado para o SITEF, mesmo eu conseguindo dar um ShowMessage no RetornoECF, e verificar que ele está sim retornando os estados corretamente. Também percebi uma diferença entre os logs da AC e da aplicação demonstrativa do ACBr, no log da AC ele chama:

CliSiTef CancelarTransacoesPendentesClass 

e na demonstrativa isto não ocorre, sendo que copiei exatamente o mesmo exemplo.

Link para o comentário
Compartilhar em outros sites

  • Consultores
1 hora atrás, JéssicaMillene disse:

No erro não informa a linha especifica de onde ocorre, apenas "Access Violation".

Mesmo assim, seria bom que você postasse a exata mensagem de erro. Se você apertar Ctrl+C quando a mensagem aparecer geralmente a caixa de diálogo inteira é copiada em modo texto e você poderia colar ela aqui.

Na mensagem geralmente não aparece a linha do erro. Você precisa fazer um debug. Ponha um breakpoint em algum momento antes da mensagem de erro e vá acompanhando passo a passo o código até o erro ser apresentado. Daí você vai poder verificar onde ele ocorre.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Em 13/02/2019 at 10:18, EMBarbosa disse:

Mesmo assim, seria bom que você postasse a exata mensagem de erro. Se você apertar Ctrl+C quando a mensagem aparecer geralmente a caixa de diálogo inteira é copiada em modo texto e você poderia colar ela aqui.

Na mensagem geralmente não aparece a linha do erro. Você precisa fazer um debug. Ponha um breakpoint em algum momento antes da mensagem de erro e vá acompanhando passo a passo o código até o erro ser apresentado. Daí você vai poder verificar onde ele ocorre.

Não da pra carregar clisitef.dll com um debugger, da exceção. O erro ocorre quando chamo ACBrTEFD.TEFCliSiTef.CRT logo quando oninfoecf é invocado, com o estadoSimuladoECF = tpsVenda. Infelizmente não há nenhuma informação além de "Access Violation"  conforme imagem em anexo.

violation.png

Link para o comentário
Compartilhar em outros sites

  • Consultores
1 minuto atrás, JéssicaMillene disse:

Não da pra carregar clisitef.dll com um debugger, da exceção

Se você colocar com o simulador (SitefDemo) e a clisitef para simulador, funciona. Pelo menos até a última versão que eu peguei. Você pode questionar ao integrador que você precisa de uma dll para rodar com o debugger, para averiguar sua própria aplicação. Você não precisa debugar a dll, apenas sua aplicação.

4 minutos atrás, JéssicaMillene disse:

O erro ocorre quando chamo ACBrTEFD.TEFCliSiTef.CRT logo quando oninfoecf é invocado, com o estadoSimuladoECF = tpsVenda. Infelizmente não há nenhuma informação além de "Access Violation"  conforme imagem em anexo.

Essa imagem mostra um erro tratado por sua aplicação. Não ajuda sem o restante das informações.

Talvez queira aproveitar a situação para implementar um sistema para gerar um CallStack quando surgirem esses tipos de problemas, conforme sugerido nesse outro tópico:

 

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Solution
Em 14/02/2019 at 14:58, EMBarbosa disse:

Se você colocar com o simulador (SitefDemo) e a clisitef para simulador, funciona. Pelo menos até a última versão que eu peguei. Você pode questionar ao integrador que você precisa de uma dll para rodar com o debugger, para averiguar sua própria aplicação. Você não precisa debugar a dll, apenas sua aplicação.

Essa imagem mostra um erro tratado por sua aplicação. Não ajuda sem o restante das informações.

Talvez queira aproveitar a situação para implementar um sistema para gerar um CallStack quando surgirem esses tipos de problemas, conforme sugerido nesse outro tópico:

 

Consegui apagando o .ppu e o .o e recriado a unit!De qualquer forma, obrigada pela atenção

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Consultores
3 horas atrás, JéssicaMillene disse:

Consegui apagando o .ppu e o .o e recriado a unit!De qualquer forma, obrigada pela atenção

Não sabia que estava usando o Lazarus. Mas que bom que resolveu.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

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