Invoking a Web service from other applications

A service requester application that is not deployed with the Web services assistant links to program DFHPIRT to invoke a Web service. The request message and response message, and other information that CICS® uses to process the request are held in a set of containers.

  1. Create a channel and populate it with containers. Provide the following information in each container:
    Container name
    Contents
    DFHWS-PIPELINE
    The name of the PIPELINE resource used for the outbound request.
    DFHWS-URI
    The URI of the target Web service
    DFHWS-BODY
    For an outbound SOAP request, the contents of the SOAP body. Provide this container when the pipeline includes a CICS-provided SOAP message handler. The message handler will construct the full SOAP message containing the body.
    DFHREQUEST
    The complete request message to be passed to the pipeline. Use this container if you do not use SOAP for your messages, or if you want to build the complete SOAP message (including the envelope) in your program.
    If you supply a SOAP body in container DFHWS-BODY, DFHREQUEST should be empty. If you supply content in both DFHWS-BODY and DFHREQUEST, CICS uses DFHREQUEST.
    DFHWS-XMLNS
    A list of name-value pairs that map namespace prefixes to namespaces for the XML content of the request.
    DFHWS-SOAPACTION
    The SOAPAction header to be added to the SOAP message specified in container DFHWS-BODY.
  2. Link to program DFHPIRT. Use this command:

    EXEC CICS LINK PROGRAM(DFHPIRT) CHANNEL(userchannel)

    where userchannel is the channel which holds your containers.
  3. Retrieve the containers that contain the response from the same channel. The complete response is contained in the following containers:
    Container name
    Contents
    DFHRESPONSE
    The complete response (including the envelope for a SOAP response) received from the pipeline.
    DFHWS-BODY
    When the pipeline includes a CICS-provided SOAP message handler, the contents of the SOAP body.
    DFHERROR
    Error information from the pipeline.