Uitgebreide ErrorInfo bij SOAP fault vhLib.Macro,vhLib.WebService.Logging,TECH.Error 1 %SOAP.WebService SERVICENAME - Should be the name of the service for which this is a proxy. Override this parameter in the subclass. dummy 1 Namespaces van de gerefereerde klassen zullen gebruikt worden in de WSDL. 1 If this parameter is true then we automatically record timing statistics of how long it takes to produce this page. It is off by default. 1 The OnInternalFault method may be overridden by the user to change the default SOAP fault returned by Cache for internal errors. OnInternalFault is passed the fault which may be modified to suit the applications needs. After OnInternalFault returns this fault will be sent to the SOAP client. The %Status that represents the error is also passed. [Previously private] 1 fault:%SOAP.Fault,status:%Status 1 initvalue:%CacheString 1 1 %Status 1 The return value is 1 (true) if the body was processed and a response stream produced. If 0 is returned the %SOAP.MsgDescriptor class will be invoked as usual. If an error occurs during the processing of the request, then a fault should be returned in the usual way using the ReturnFault method.
The arguments to this method are:
action is the SOAPAction for the SOAP request.
requestBody is the body of the SOAP request.
responseBody is a character stream to which the body of the SOAP response will be written.

]]>
%Boolean 1
1 body:%SOAP.Descriptor,tag:%String,isService:%Boolean,mimeAttachments:%Net.MIMEPart,bodyStream:%CharacterStream %Status 1 0)) { Set sc=..WriteSOAPHeaders(bodyUse,namespaces) If $$$ISERR(sc) Quit sc } If 'isService || 'oneWay { // If one-way service response with headers, then no body. Write " <"_..#SOAPPREFIX_":Body" Set securityHeader=r%SecurityOut If ..BodyId'="" { Write " wsu:Id="""_..BodyId_"""" Set ..BodyId="" } If (bodyUse="encoded") && (..SoapVersion="1.1") { Write " "_..#SOAPPREFIX_":encodingStyle='"_$$$SOAPENCns_"'" } Write ">" Set encryptedBody=($isobject(r%SecurityOut) && r%SecurityOut.IsEncrypted) If encryptedBody { Set r%SecurityOut.WSBodyPosition=r%SecurityOut.WSStream.Size } If ..WriteSOAPBodyMethod'="" { Set sc=$method($this,..WriteSOAPBodyMethod,body,tag) } Else { If $data(bodyStream) { If $isobject(bodyStream) { Set sc=bodyStream.OutputToDevice() } Else { Write bodyStream } } Else { Set format=bodyUse If bare { Set format=format_",group" } Else { If (bodyUse="encoded") && (..SoapVersion'="1.1") { Set attrs($increment(attrs))=..#SOAPPREFIX_":encodingStyle" Set attrs(attrs,0)=$$$SOAP12ENCns Set format="encoded12" } If forceTNS Set tag="tns:"_tag } Set sc=body.XMLExport(tag,format,namespaces,.attrs,,,,,,,mimeAttachments) } } If $$$ISERR(sc) Quit sc If encryptedBody { Set r%SecurityOut.WSBodyLength=r%SecurityOut.WSStream.Size-r%SecurityOut.WSBodyPosition } Write "",! } Else { Write " <"_..#SOAPPREFIX_":Body>",! } Do ..EndSOAPEnvelope() Do WebServiceHelper.OnAfterWriteSOAPMessage(..%ClassName(1), $this) Quit $$$OK ]]>