Preparing callout messages

If you are not using the IMS Connect XML adapter function to convert the data between bytes and XML, you must ensure that the callout message from your IMS application is in a valid XML format.

Your IMS application must send the callout request message in an XML format that can be processed by SOAP Gateway and the target web service appropriately. You must add the <IOGServiceData> service data information to the callout request message.

Callout message XML schema sample

The following example is a sample callout message XML schema. The callout messages generated from Rational® Developer for System z® conform to this schema.

<schema targetNamespace=http://www.ibm.com/IMS/Callout 
 xmlns:IMS="http://www.ibm.com/IMS/Callout" elementFormDefault="qualified" 
 xmlns="http://www.w3.org/2001/XMLSchema">

<!-- Global element -->
  <element name="IOGCallout" type="IMS:IOGCalloutType"/>

  <!-- Message contents  -->
  <complexType name="IOGCalloutType">
  <sequence minOccurs="1" maxOccurs="1">
    <!-- Web service invocation information -->
    <element name="IOGServiceData" type="IMS:IOGServiceDataType" 
     minOccurs="1"  maxOccurs="1"/>

		<!-- Outbound language structure expressed as XML -->
		<element name="IOGPayloadData" type="anyType" minOccurs="1" 
     maxOccurs="1"/>
  </sequence>
  </complexType>

  <!-- Web serice invocation information -->
  <complexType name="IOGServiceDataType">
  <sequence>
    <!-- Typically the WSDL file name without the extension -->
    <element name="WSID" type="string" minOccurs="1" maxOccurs="1"/>
			
    <!-- Target namespace of WSDL -->
    <element name="Namespace" type="string" minOccurs="1" maxOccurs="1"/>
			
    <!-- Service container of Port of Operation to invoke -->
    <element name="Service" type="string" minOccurs="1" maxOccurs="1"/>
			
    <!-- Port container of Operation to invoke-->
    <element name="Port" type="string" minOccurs="1" maxOccurs="1"/>

    <!-- Operation to invoke on Port of Service -->
    <element name="Operation" type="string" minOccurs="1" maxOccurs="1"/>
  </sequence>
  </complexType>
</schema>
Tip: The values of the service name and operation name are used to determine the web service and the associated correlator.

Callout message example

The following example is a sample callout message.

<IMS:IOGCallout xmlns:IMS="http://www.ibm.com/IMS/Callout"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.ibm.com/IMS/Callout IOGCallout.xsd ">
  <IMS:IOGServiceData>
    <IMS:WSID>IMSPHBK</IMS:WSID>
    <IMS:Namespace>http://www.IMSPHBKI.com/IMSPHBKI</IMS:Namespace>
    <IMS:Service>IMSPHBKService</IMS:Service>		
    <IMS:Port>IMSPHBKPort</IMS:Port>
    <IMS:Operation>IMSPHBKOperation</IMS:Operation>
  </IMS:IOGServiceData>
  <IMS:IOGPayloadData>
    <INPUTMSG
      xmlns="http://www.IMSPHBKI.com/schemas/IMSPHBKIInterface">
      <in_cmd>DISPLAY</in_cmd>
      <in_name1>last1</in_name1>
    </INPUTMSG>
  </IMS:IOGPayloadData>
</IMS:IOGCallout>