Jump to content

dev botao

Tratar Timeout no acbrmonitor


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

Recommended Posts

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.

Link to comment
Share on other sites

  • Moderadores

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.

Link to comment
Share on other sites

  • Fundadores

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

  • Fundadores
  • Solution

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

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

  • Like 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

  • 2 years later...
  • Moderadores
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
 

 

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.

The popup will be closed in 10 seconds...