Ir para conteúdo
  • Cadastre-se

dev botao

Tratar Timeout no acbrmonitor


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

Recommended Posts

Postado

Boa tarde.

Assisti os vídeos referente a implementação da contingência e NFC-e e estou realizando tais alterações no acbrmonitor, a questão é que o vídeo é um pouco antigo e acredito que já houveram muitas alterações no código e as alterações acabam sendo um pouco diferentes.

Nos vídeos é demonstrado como tratar o timeout incluindo comandos no método "OnTransmitError", verificando se o parametro HttpError é igual a WSAETIMEDOUT. Verificando os fontes do acbrmonitor, notei que a classe "FOnTransmitError" está setada para NIL, e o método OnTransmitError não é invocado, contudo, tentei realizar a verificação do FPDFeOwner.SSL.HTTPResultCode no próprio método Enviar mais o retorno dele quando desligo a internet aqui é 500, ao contrário do demonstrado no vídeo que é 1060. Também não consegui comparar ele com o WSAETIMEDOUT e não sei como adiciona-lo no uses já que esta na unidade sswin32.inc.

Como devo proceder para testar timeout de conexão neste ponto ?  Devo instanciar a classe FOnTransmitError e implementar isso lá ou posso implementar no Enviar mesmo ? E já que não consigo utilizar o WSAETIMEDOUT e o retorno do FPDFeOwner.SSL.HTTPResultCode é 500, como devo proceder ?

Grato pela atenção.

  • Moderadores
Postado

Bom dia,

Não compreendi... está realizando estas validações nos fontes do ACBrMonitor? 

Se utiliza o ACBrMonitor, configure o timeout no Menu DFe / Geral. E baseado na resposta do ACBrMonitor quando exceder timeout, configure sua aplicação para emissão em contingência. Mas não precisaria alterar nada no ACBrMonitor (Nem é recomendado ), deve validar através da sua aplicação, baseado nos retornos do WebService...

Alguns métodos podem ser instanciados e validados, conforme citado no vídeo, quando utilizado os Componentes do ACBr diretamente na aplicação comercial.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Fundadores
Postado

O ACBrMonitorPLUS não faz entrada e saída de contingência automática... e também não controla a fila de NFCe's emitidas em modo off-line... isso deve ser feito pela sua aplicação...

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
1 hora atrás, José M. S. Junior disse:

Bom dia,

Não compreendi... está realizando estas validações nos fontes do ACBrMonitor? 

Se utiliza o ACBrMonitor, configure o timeout no Menu DFe / Geral. E baseado na resposta do ACBrMonitor quando exceder timeout, configure sua aplicação para emissão em contingência. Mas não precisaria alterar nada no ACBrMonitor (Nem é recomendado ), deve validar através da sua aplicação, baseado nos retornos do WebService...

Alguns métodos podem ser instanciados e validados, conforme citado no vídeo, quando utilizado os Componentes do ACBr diretamente na aplicação comercial.

Bom dia José,

Então a aplicação que ele da exemplo no vídeo pelo que entendi é em pascal e utiliza os fontes do acbr. No meu caso minha aplicação é em outra linguagem e preciso gerar toda a nota no arquivo INI e depois enviar para o monitor pelo ENT.TXT. Contudo, estava fazendo um teste aqui. Desativei minha rede e enviei um comando para o monitor para realizar a emissão de uma nota offline. Configurei no monitor - DFE/Webservice a forma de emissão para teOffline e o tpemiss na nota, mais quando envio o comando ele  não faz a emissão da nota, me dá um retorno no arquivo SAI.TXT :

ERRO: 
Erro Interno: 11004
Erro HTTP: 500
 

Com isso não consegui compreender ainda como realizar a emissão offline e em contingência pelo monitor. Por isso estava questionando sobre tratar timeout de conexão.

Postado
47 minutos atrás, Daniel Simoes disse:

Qual comando você está enviando ? (anexe o Logo do ACBrMonitorPLUS)..

Você não deve usar o CriarEnviar... mas apenas o Criar...

Consegui efetuar a emissão da forma que você falou. Obrigado.

  • Curtir 1
  • 2 anos depois...
  • Moderadores
Postado
Em 28/02/2018 at 16:41, abrahaofv disse:

Boa tarde.

Assisti os vídeos referente a implementação da contingência e NFC-e e estou realizando tais alterações no acbrmonitor, a questão é que o vídeo é um pouco antigo e acredito que já houveram muitas alterações no código e as alterações acabam sendo um pouco diferentes.

Nos vídeos é demonstrado como tratar o timeout incluindo comandos no método "OnTransmitError", verificando se o parametro HttpError é igual a WSAETIMEDOUT. Verificando os fontes do acbrmonitor, notei que a classe "FOnTransmitError" está setada para NIL, e o método OnTransmitError não é invocado, contudo, tentei realizar a verificação do FPDFeOwner.SSL.HTTPResultCode no próprio método Enviar mais o retorno dele quando desligo a internet aqui é 500, ao contrário do demonstrado no vídeo que é 1060. Também não consegui comparar ele com o WSAETIMEDOUT e não sei como adiciona-lo no uses já que esta na unidade sswin32.inc.

Como devo proceder para testar timeout de conexão neste ponto ?  Devo instanciar a classe FOnTransmitError e implementar isso lá ou posso implementar no Enviar mesmo ? E já que não consigo utilizar o WSAETIMEDOUT e o retorno do FPDFeOwner.SSL.HTTPResultCode é 500, como devo proceder ?

Grato pela atenção.

synsock

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

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