Quantcast
Channel: SCN : Unanswered Discussions - Process Integration (PI) & SOA Middleware
Viewing all articles
Browse latest Browse all 6719

RPC/Encoded SOAP Response Generation in SAP PI

$
0
0

Hi All,

For our client, we are currently migrating interfaces from IBM WPS to SAP PI 7.31 (Single Stack). In some of our interfaces, we currently have a synchronous SOAP to RFC scenario. What we see in current WPS set up is that the SOAP request and response style in not Document/Literal (out of the box supported by SAP PI) but instead its RPC/Encoded. Also, the SOAP response generated by WPS has MultiRef nodes as a part of RPC encoded response. As we are not expected to change sender and receiver application, this being a migration project, we cannot ask sender application to change from RPC to Document style as this already impacts many interfaces. So we need to generate the same request/response as is generated by WPS via SAP PI. 

We feel we can handle the request part by importing the WSDLs as RPC style and/or doing some XSLT mapping but we currently are not clear on how to generate the RPC style response with MultiRef nodes. We basically need help if somebody has done some conversion from Document style to RPC style with MultiRef nodes earlier.

 

The WPS soap reponse looks some thing similar to this:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

   <soapenv:Header soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

   <soapenv:Body soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

      <p317:OutputResponseOperation xmlns:p317="http://mytest.com">

         <OutputResponse href="#id0"/>

      </p317:OutputResponseOperation>

      <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="m301:__MyType1" xmlns:m301="http://localhost/authentication">

         <ID xsi:type="xsd:string">123</ID>

         <UserDetails href="#id1"/>

         <Address href="#id2"/>

      </multiRef>

      <multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="m301:__UserDetails" xmlns:m301="http://localhost/authentication">

         <loginName xsi:type="xsd:string">test</loginName>

         <password xsi:nil="true" xsi:type="xsd:string"/>

       </multiRef>

     <multiRef id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="m301:__Address" xmlns:m301="http://localhost/authentication">

     <contact xsi:type="xsd:string">XYZ</contact>

     <address1 xsi:type="xsd:string">USA</address1>

     </multiRef>

   </soapenv:Body>

</soapenv:Envelope>


Viewing all articles
Browse latest Browse all 6719

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>