DEFINE VARIABLE retValue AS CHARACTER INITIAL "OK" NO-UNDO.
DEFINE VARIABLE err AS LOGICAL NO-UNDO.
DEFINE VARIABLE hWebService AS HANDLE NO-UNDO.
DEFINE VARIABLE hTextCasingSoapType AS HANDLE NO-UNDO.
CREATE SERVER hWebService.
hWebService:CONNECT("-WSDL 'http://www.dataaccess.com/webservicesserver/textcasing.wso?WSDL'").
RUN TextCasingSoapType SET hTextCasingSoapType ON hWebService.
DEFINE VARIABLE sAString AS CHARACTER NO-UNDO.
DEFINE VARIABLE InvertStringCaseResult AS CHARACTER NO-UNDO.
sAString = '<ns0:InvertStringCase ' +
'xmlns:ns0="http://www.dataaccess.com/webservicesserver/">' +
' <ns0:sAString>ABCDEFG</ns0:sAString>' +
'</ns0:InvertStringCase>'.
RUN InvertStringCase IN hTextCasingSoapType
(INPUT sAString, OUTPUT InvertStringCaseResult) NO-ERROR.
RUN ErrorInfo (OUTPUT err).
IF NOT err THEN DO:
MESSAGE InvertStringCaseResult VIEW-AS ALERT-BOX.
END.
hWebService:DISCONNECT().
/*******************************************************************/
PROCEDURE ErrorInfo: /*1*/
DEFINE OUTPUT PARAMETER errorfound AS LOGICAL INITIAL FALSE.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
DEFINE VARIABLE hSOAPFault AS HANDLE NO-UNDO.
DEFINE VARIABLE hSOAPFaultDetail AS HANDLE NO-UNDO.
DEFINE VARIABLE HeaderXML AS LONGCHAR VIEW-AS EDITOR SIZE 70 BY 15 LARGE.
IF ERROR-STATUS:NUM-MESSAGES > 0 THEN DO:
errorfound = TRUE.
DO i = 1 TO ERROR-STATUS:NUM-MESSAGES:
MESSAGE ERROR-STATUS:GET-MESSAGE(i) VIEW-AS ALERT-BOX.
END.
/*2*/
IF VALID-HANDLE(ERROR-STATUS:ERROR-OBJECT-DETAIL) THEN DO:
hSOAPFault = ERROR-STATUS:ERROR-OBJECT-DETAIL.
MESSAGE
"Fault Code: " hSOAPFault:SOAP-FAULT-CODE SKIP
"Fault String: " hSOAPFault:SOAP-FAULT-STRING SKIP
"Fault Actor: " hSOAPFault:SOAP-FAULT-ACTOR SKIP
"Error Type: " hSOAPFault:TYPE VIEW-AS ALERT-BOX.
/*3*/
IF VALID-HANDLE(hSOAPFault:SOAP-FAULT-DETAIL) THEN DO:
hSOAPFaultDetail = hSOAPFault:SOAP-FAULT-DETAIL.
MESSAGE "Error Type: " hSOAPFaultDetail:TYPE
VIEW-AS ALERT-BOX.
HeaderXML = hSOAPFaultDetail:GET-SERIALIZED().
DISPLAY HeaderXML LABEL "Serialized SOAP fault detail"
WITH FRAME a.
END.
END.
END.
END PROCEDURE.
/*******************************************************************/