O error block não funciona qunado utilizado em WebService SOAP.
Ele retorna o seguinte erro WSDLSRVERROR(X, .F. )
Tenho um WebService criado em ADVPL para execuções de rotinas e gostaria de utilizar o errorblock para capturar possiveis erros, pois segundo os artigos abaixo, não é retornado mais o erro completo.
https://tdn.totvs.com/display/public/PROT/ADV0001_WebService_INTERNAL_SERVER_ERRO https://tdn.totvs.com/pages/releaseview.action?pageId=311632028
Segue exemplo :
WSMETHOD xTeste WSRECEIVE xParam WSSEND xRet WSSERVICE ws_teste
Local oError Local cError := "" Local bErrorBlock := ErrorBlock( { |e| oError := e , BREAK(e) } )
BEGIN SEQUENCE
//Execuções diversas // ...
n := 1 + 'n' // Forçando um erro para captura
RECOVER
ErrorBlock( bErrorBlock )
cError := oError:Description
END SEQUENCE
xRet := n
Return .T.
//--------------------------------------------------------------------------
Porem isso não funciona, quando executa o erro ele de fato cai no RECOVER porem não trás o erro e sim um outro errorblock , WSDLSRVERROR(X, .F. )
Boa noite Lucas, o que exatamente você está fazendo?
— Daniel Mendes 23 de Apr de 2020WebService SOAP
— Lucas Antunes de Souza 24 de Apr de 2020