%soap TECH.RegisteredObject TECH.IO 1 ClassName:%String,ThisWebService:%SOAP.WebService fault:%SOAP.Fault,status:%Status,Classname:%String,Namespace:%String "_$$$CRLF Set detail=detail_" "_$$$CRLF Set detail=detail_" "_$$$cvtHTML(%ErrorObject.ErrorCode)_""_$$$CRLF Set:($L(%ErrorObject.UserText)) detail=detail_" "_$$$cvtHTML(%ErrorObject.UserText)_""_$$$CRLF Set detail=detail_" "_$$$cvtHTML(%ErrorObject.ErrorCode2)_""_$$$CRLF Set:%ErrorObject.Data'="" detail = detail_" "_%ErrorObject.Data_""_$$$CRLF Set detail=detail_" "_$$$cvtHTML(%ErrorObject.RemoteIP)_""_$$$CRLF Set detail=detail_" "_$$$cvtHTML("device: "_%ErrorObject.Device_" job: "_%ErrorObject.Job)_""_$$$CRLF Set detail=detail_" "_$$$CRLF Set fault.detail=detail } // Eerst de oorspronkelijke exception opvangen, i.e. diegene die de SoapFault heeft getriggered. // Dit gebeurt ook halvelings hierboven reeds, maar willen die werking niet wijzigen/verstoren., dus daarom gebeurt de Catch() hier pas. #dim GecatchteException As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Catch() Do ..LogSoapInternalFault(fault, $Get(status), $Get(Classname), GecatchteException) ]]> fault:%SOAP.Fault,status:%Status,Classname:%String,GecatchteException:TECH.Exceptions.Exception="" 1 In sommige situaties moet de SoapFault niet als error gelogd worden, maar als warning. fault:%SOAP.Fault 1 %Boolean `1005:invaliduserinput")) Quit IsSoapFaultUserInputValidatie ; OR ... ]]> fault:%SOAP.Fault,status:%Status,Classname:%String,GecatchteException:TECH.Exceptions.Exception="" 1 %Stream