Determine the structure of the request and response

To determine the structure of the request and response, it is very helpful to look at both the request and response using a tool such as SOAP UI. The PPM WSDL shown below generated the request and response in the next section using SOAP UI.

PPM WSDL:

- <wsdl:definitions xmlns:ds="http://mercury.com/ppm/dm/service/1.0" 
   xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
   xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
   xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 
   xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" 
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
   xmlns:dmMsg="http://mercury.com/ppm/dm/msg/1.0" 
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    targetNamespace="http://mercury.com/ppm/dm/msg/1.0">
  <wsdl:documentation>DemandService</wsdl:documentation> 
- <wsdl:types>
- <xs:schema xmlns:dm="http://mercury.com/ppm/dm/1.0" 
   xmlns:xs="http://www.w3.org/2001/XMLSchema" 
   xmlns:common="http://mercury.com/ppm/common/1.0" 
   attributeFormDefault="qualified" elementFormDefault="qualified" 
   targetNamespace="http://mercury.com/ppm/dm/service/1.0">
  <xs:import namespace="http://mercury.com/ppm/dm/1.0" 
   schemaLocation="DemandService?xsd=xsd0" /> 
- <xs:element name="createRequest">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="requestObj" type="dm:Request" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="createRequestResponse">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="return" nillable="true" type="dm:RemoteReference" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="getRequests">
- <xs:complexType>
- <xs:sequence>
  <xs:element maxOccurs="unbounded" name="requestIds" 
   nillable="true" type="dm:Identifier" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="getRequestsResponse">
- <xs:complexType>
- <xs:sequence>
  <xs:element maxOccurs="unbounded" name="return" 
   nillable="true" type="dm:Request" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="addRequestNotes">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="requestId" type="dm:Identifier" /> 
  <xs:element maxOccurs="unbounded" name="notes" type="common:Note" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="addRequestNotesResponse">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="return" nillable="true" type="xs:int" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="deleteRequests">
- <xs:complexType>
- <xs:sequence>
  <xs:element maxOccurs="unbounded" name="requestIds" 
   type="dm:Identifier" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="deleteRequestsResponse">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="return" nillable="true" type="xs:int" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="setRequestRemoteReferenceStatus">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="receiver" type="dm:Identifier" /> 
  <xs:element name="source" type="dm:Identifier" /> 
  <xs:element name="status" type="xs:string" /> 
  <xs:element maxOccurs="unbounded" name="fields" nillable="true" 
   type="dm:SimpleField" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="setRequestRemoteReferenceStatusResponse">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="return" nillable="true" type="xs:int" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="setRequestFields">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="requestId" type="dm:Identifier" /> 
  <xs:element maxOccurs="unbounded" name="fields" 
   type="dm:SimpleField" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="setRequestFieldsResponse">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="return" nillable="true" type="xs:int" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="executeWFTransitions">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="receiver" type="dm:Identifier" /> 
  <xs:element name="transition" type="xs:string" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="executeWFTransitionsResponse">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="return" nillable="true" type="xs:string" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:schema>
  </wsdl:types>
- <wsdl:message name="setRequestRemoteReferenceStatusMessage">
  <wsdl:part name="part1" element="ds:setRequestRemoteReferenceStatus" /> 
  </wsdl:message>
- <wsdl:message name="setRequestRemoteReferenceStatusResponseMessage">
  <wsdl:part name="part1" 
   element="ds:setRequestRemoteReferenceStatusResponse" /> 
  </wsdl:message>
- <wsdl:message name="addRequestNotesMessage">
  <wsdl:part name="part1" element="ds:addRequestNotes" /> 
  </wsdl:message>
- <wsdl:message name="addRequestNotesResponseMessage">
  <wsdl:part name="part1" element="ds:addRequestNotesResponse" /> 
  </wsdl:message>
- <wsdl:message name="createRequestMessage">
  <wsdl:part name="part1" element="ds:createRequest" /> 
  </wsdl:message>
- <wsdl:message name="createRequestResponseMessage">
  <wsdl:part name="part1" element="ds:createRequestResponse" /> 
  </wsdl:message>
- <wsdl:message name="deleteRequestsMessage">
  <wsdl:part name="part1" element="ds:deleteRequests" /> 
  </wsdl:message>
- <wsdl:message name="deleteRequestsResponseMessage">
  <wsdl:part name="part1" element="ds:deleteRequestsResponse" /> 
  </wsdl:message>
- <wsdl:message name="setRequestFieldsMessage">
  <wsdl:part name="part1" element="ds:setRequestFields" /> 
  </wsdl:message>
- <wsdl:message name="setRequestFieldsResponseMessage">
  <wsdl:part name="part1" element="ds:setRequestFieldsResponse" /> 
  </wsdl:message>
- <wsdl:message name="getRequestsMessage">
  <wsdl:part name="part1" element="ds:getRequests" /> 
  </wsdl:message>
- <wsdl:message name="getRequestsResponseMessage">
  <wsdl:part name="part1" element="ds:getRequestsResponse" /> 
  </wsdl:message>
- <wsdl:message name="executeWFTransitionsMessage">
  <wsdl:part name="part1" element="ds:executeWFTransitions" /> 
  </wsdl:message>
- <wsdl:message name="executeWFTransitionsResponseMessage">
  <wsdl:part name="part1" element="ds:executeWFTransitionsResponse" /> 
  </wsdl:message>
- <wsdl:portType name="DemandServicePortType">
- <wsdl:operation name="setRequestRemoteReferenceStatus">
  <wsdl:input message="dmMsg:setRequestRemoteReferenceStatusMessage" 
   wsaw:Action="urn:setRequestRemoteReferenceStatus" /> 
  <wsdl:output message=
   "dmMsg:setRequestRemoteReferenceStatusResponseMessage" 
   wsaw:Action="http://mercury.com/ppm/dm/msg/1.0/
   DemandServicePortType/setRequestRemoteReferenceStatus" /> 
  </wsdl:operation>
- <wsdl:operation name="addRequestNotes">
  <wsdl:input message="dmMsg:addRequestNotesMessage" 
   wsaw:Action="urn:addRequestNotes" /> 
  <wsdl:output message="dmMsg:addRequestNotesResponseMessage" 
   wsaw:Action="http://mercury.com/ppm/dm/msg/1.0
   /DemandServicePortType/addRequestNotesResponse" /> 
  </wsdl:operation>
- <wsdl:operation name="createRequest">
  <wsdl:input message="dmMsg:createRequestMessage" 
   wsaw:Action="urn:createRequest" /> 
  <wsdl:output message="dmMsg:createRequestResponseMessage" 
   wsaw:Action="http://mercury.com/ppm/dm/msg/1.0/
   DemandServicePortType/createRequestResponse" /> 
  </wsdl:operation>
- <wsdl:operation name="deleteRequests">
  <wsdl:input message="dmMsg:deleteRequestsMessage" 
   wsaw:Action="urn:deleteRequests" /> 
  <wsdl:output message="dmMsg:deleteRequestsResponseMessage" 
   wsaw:Action="http://mercury.com/ppm/dm/msg/1.0
   /DemandServicePortType/deleteRequestsResponse" /> 
  </wsdl:operation>
- <wsdl:operation name="setRequestFields">
  <wsdl:input message="dmMsg:setRequestFieldsMessage" 
   wsaw:Action="urn:setRequestFields" /> 
  <wsdl:output message="dmMsg:setRequestFieldsResponseMessage" 
   wsaw:Action="http://mercury.com/ppm/dm/msg/1.0
   /DemandServicePortType/setRequestFieldsResponse" /> 
  </wsdl:operation>
- <wsdl:operation name="getRequests">
  <wsdl:input message="dmMsg:getRequestsMessage" 
   wsaw:Action="urn:getRequests" /> 
  <wsdl:output message="dmMsg:getRequestsResponseMessage" 
   wsaw:Action="http://mercury.com/ppm/dm/msg/1.0
   /DemandServicePortType/getRequestsResponse" /> 
  </wsdl:operation>
- <wsdl:operation name="executeWFTransitions">
  <wsdl:input message="dmMsg:executeWFTransitionsMessage" 
   wsaw:Action="urn:executeWFTransitions" /> 
  <wsdl:output message="dmMsg:executeWFTransitionsResponseMessage" 
   wsaw:Action="http://mercury.com/ppm/dm/msg/1.0
   /DemandServicePortType/executeWFTransitionsResponse" /> 
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="DemandServiceSOAP11Binding" 
  type="dmMsg:DemandServicePortType">
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http" 
   style="document" /> 
- <wsdl:operation name="setRequestRemoteReferenceStatus">
  <soap:operation soapAction="urn:setRequestRemoteReferenceStatus" 
   style="document" /> 
- <wsdl:input>
  <soap:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="addRequestNotes">
  <soap:operation soapAction="urn:addRequestNotes" style="document" /> 
- <wsdl:input>
  <soap:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="createRequest">
  <soap:operation soapAction="urn:createRequest" style="document" /> 
- <wsdl:input>
  <soap:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="deleteRequests">
  <soap:operation soapAction="urn:deleteRequests" style="document" /> 
- <wsdl:input>
  <soap:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="setRequestFields">
  <soap:operation soapAction="urn:setRequestFields" style="document" /> 
- <wsdl:input>
  <soap:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="getRequests">
  <soap:operation soapAction="urn:getRequests" style="document" /> 
- <wsdl:input>
  <soap:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="executeWFTransitions">
  <soap:operation soapAction="urn:executeWFTransitions" 
   style="document" /> 
- <wsdl:input>
  <soap:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:binding name="DemandServiceSOAP12Binding" 
   type="dmMsg:DemandServicePortType">
  <soap12:binding transport="http://schemas.xmlsoap.org/soap
   /http" style="document" /> 
- <wsdl:operation name="setRequestRemoteReferenceStatus">
  <soap12:operation soapAction="urn:setRequestRemoteReferenceStatus" 
  style="document" /> 
- <wsdl:input>
  <soap12:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap12:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="addRequestNotes">
  <soap12:operation soapAction="urn:addRequestNotes" style="document" /> 
- <wsdl:input>
  <soap12:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap12:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="createRequest">
  <soap12:operation soapAction="urn:createRequest" style="document" /> 
- <wsdl:input>
  <soap12:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap12:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="deleteRequests">
  <soap12:operation soapAction="urn:deleteRequests" style="document" /> 
- <wsdl:input>
  <soap12:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap12:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="setRequestFields">
  <soap12:operation soapAction="urn:setRequestFields" style="document" /> 
- <wsdl:input>
  <soap12:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap12:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="getRequests">
  <soap12:operation soapAction="urn:getRequests" style="document" /> 
- <wsdl:input>
  <soap12:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap12:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="executeWFTransitions">
  <soap12:operation soapAction="urn:executeWFTransitions" 
  style="document" /> 
- <wsdl:input>
  <soap12:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap12:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:binding name="DemandServiceHttpBinding" 
   type="dmMsg:DemandServicePortType">
  <http:binding verb="POST" /> 
- <wsdl:operation name="setRequestRemoteReferenceStatus">
  <http:operation location="setRequestRemoteReferenceStatus" /> 
- <wsdl:input>
  <mime:content type="text/xml" /> 
  </wsdl:input>
- <wsdl:output>
  <mime:content type="text/xml" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="addRequestNotes">
  <http:operation location="addRequestNotes" /> 
- <wsdl:input>
  <mime:content type="text/xml" /> 
  </wsdl:input>
- <wsdl:output>
  <mime:content type="text/xml" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="createRequest">
  <http:operation location="createRequest" /> 
- <wsdl:input>
  <mime:content type="text/xml" /> 
  </wsdl:input>
- <wsdl:output>
  <mime:content type="text/xml" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="deleteRequests">
  <http:operation location="deleteRequests" /> 
- <wsdl:input>
  <mime:content type="text/xml" /> 
  </wsdl:input>
- <wsdl:output>
  <mime:content type="text/xml" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="setRequestFields">
  <http:operation location="setRequestFields" /> 
- <wsdl:input>
  <mime:content type="text/xml" /> 
  </wsdl:input>
- <wsdl:output>
  <mime:content type="text/xml" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="getRequests">
  <http:operation location="getRequests" /> 
- <wsdl:input>
  <mime:content type="text/xml" /> 
  </wsdl:input>
- <wsdl:output>
  <mime:content type="text/xml" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="executeWFTransitions">
  <http:operation location="executeWFTransitions" /> 
- <wsdl:input>
  <mime:content type="text/xml" /> 
  </wsdl:input>
- <wsdl:output>
  <mime:content type="text/xml" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:service name="DemandService">
- <wsdl:port name="DemandServiceSOAP11port_http" 
  binding="dmMsg:DemandServiceSOAP11Binding">
  <soap:address location="http://<ppm server>:15000/itg/ppmservices/
  DemandService" /> 
  </wsdl:port>
- <wsdl:port name="DemandServiceSOAP12port_http" 
   binding="dmMsg:DemandServiceSOAP12Binding">
  <soap12:address location="http://<ppm server>:15000/itg/
   ppmservices/DemandService" /> 
  </wsdl:port>
- <wsdl:port name="DemandServiceHttpport1" 
   binding="dmMsg:DemandServiceHttpBinding">
  <http:address location="http://<ppm server>:15000/itg/
   ppmrest/DemandService" /> 
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>