Public dictionary Web-Service Call (sample)

rstanciu

Member
Code:
/* client_dictionary.p  */

DEFINE VARIABLE hWebService AS HANDLE NO-UNDO.
DEFINE VARIABLE hDictServiceSoap AS HANDLE NO-UNDO.


CREATE SERVER hWebService.

hWebService:CONNECT("-WSDL 'http://services.aonaware.com/DictService/DictService.asmx?WSDL'").

RUN DictServiceSoap SET hDictServiceSoap ON hWebService.

DEFINE VARIABLE word AS CHARACTER NO-UNDO.
DEFINE VARIABLE DefineResult AS LONGCHAR NO-UNDO.

word = "4GL".
RUN Define IN hDictServiceSoap(INPUT word, OUTPUT DefineResult).

/**************************************************************/
DEFINE VARIABLE hParser AS HANDLE NO-UNDO.
DEFINE VARIABLE dictTag AS CHARACTER NO-UNDO.

CREATE SAX-READER hParser.
hParser:HANDLER = THIS-PROCEDURE.
hParser:SET-INPUT-SOURCE("LONGCHAR", DefineResult).
hParser:SAX-PARSE( ) NO-ERROR.
IF ERROR-STATUS:ERROR THEN DO:
  IF ERROR-STATUS:NUM-MESSAGES > 0 THEN
    MESSAGE ERROR-STATUS:GET-MESSAGE(1) VIEW-AS ALERT-BOX.
  ELSE
    MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX.
END.
DELETE OBJECT hParser.
DELETE PROCEDURE hDictServiceSoap.
hWebService:DISCONNECT().
DELETE OBJECT hWebService.
/**************************************************************/
PROCEDURE StartDocument:
END.
/**************************************************************/
PROCEDURE StartElement:
  DEFINE INPUT PARAMETER namespaceURI AS CHARACTER.
  DEFINE INPUT PARAMETER localName AS CHARACTER.
  DEFINE INPUT PARAMETER qname AS CHARACTER.
  DEFINE INPUT PARAMETER attributes AS HANDLE.
   dictTag = localName.

END.
/**************************************************************/
PROCEDURE Characters:
  DEFINE INPUT PARAMETER charData AS MEMPTR.
  DEFINE INPUT PARAMETER numChars AS INTEGER.
  DEFINE VARIABLE mResult AS CHARACTER NO-UNDO.
  mResult = TRIM(GET-STRING(charData, 1, GET-SIZE(charData))).
  IF dictTag = "WordDefinition" AND LENGTH(mResult) > 0 THEN DO:
    MESSAGE mResult
        VIEW-AS ALERT-BOX INFO BUTTONS OK.
  END.
END.
/**************************************************************/
PROCEDURE EndElement:
  DEFINE INPUT PARAMETER namespaceURI AS CHARACTER.
  DEFINE INPUT PARAMETER localName AS CHARACTER.
  DEFINE INPUT PARAMETER qName AS CHARACTER.
  dictTag = "".
END.
/**************************************************************/
PROCEDURE EndDocument:
END.
/**************************************************************/
 

Cringer

ProgressTalk.com Moderator
Staff member
Haha you're a genius with these. Have pulled that into a rough .w. Works nicely.
 

Cringer

ProgressTalk.com Moderator
Staff member
Exactly that! :) A screen with an editor, a fill in and a button to allow the user to submit any query to it. No validation, no frills, and no formatting of the output.
 

Emily

New Member
I just managed to get it. I have tried many methods. it works now.

hWebService:CONNECT("-WSDL ' \modsim5\webservice\vendor.wsdl'

does't work for double slash
hWebService:CONNECT("-WSDL '\\sawsdev1\webservice\vendor.wsdl'
 
Top