coloquei para que o ADVPL fizesse uma pausa de 15 segundos antes de fechar a conexão SOCKs, se ver no codigo acima, foi colocado para ele fechar a conexão depois de enviar comando.
E antes dos 15 segundos eu fiz uma verificação se houve algum retorno.
ficando assim:
Private oObj := tSocketClient():New()
Private _cEol := Chr(13)+Chr(10)+Chr(46)+Chr(13)+Chr(10)
For nX := 1 to 3
nResp := oObj:Connect( nPort,nIp,10 )
// -------------------------------
// Se conectou abandona o FOR
// -------------------------------
If(nResp == 0 )
Exit
Else
conout("--> Tentativa de Conexão ACBr: " + StrZero(nX,3))
Sleep(2000)
EndIf
Next
If( !oObj:IsConnected() )
conout("********* Não foi possível estabelecer conexão com o ACBr. *********")
Return(.F.)
Else
conout("****************** ACBr CONECTADO! ************************")
Sleep(2000)
cSend := 'NFe.DistribuicaoDFeporUltNSU("52","37247772000132","0")'+_cEol
nResp := oObj:Send( cSend )
if( nResp != len( cSend ) )
conout( "--> Erro! Dado não transmitido" )
else
conout( "--> Dado Enviado - Retorno: " +StrZero(nResp,5) )
endif
Sleep(20000)
conout("****************** Fechando o ACBr! ************************")
oObj:CloseConnection()
EndIf
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.