cancel
Showing results for 
Search instead for 
Did you mean: 

OutBound Proxy to SOAP( Synchronous ) scenario(PI 7.0 is the landscape been worked on)

former_member859847
Active Contributor
0 Kudos


Hi All,
   I have a scenario where from Outbound proxy(Synchronous) data is sent to Webservice( external system- Synchronous- Receiver SOAP Adapter).
Can anyone please suggest how to remove SOAP enevelope from response message. When data is sent from SAP to WB theres no issue, when I receive details message back from WB SOAP enevelope tags are seen, due to this I am unable to generate details response in mapping.

In receiver SOAP Adapter I have tried DO Not Use SOAP Envelope Option also, with no luck..

Please find tags generated for SOAP enevelope-->

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <SOAP-ENV:Body>
- <rpc:CfolderInterfaceResponse xmlns:rpc="http://siebel.com/CustomUI">
- <opOpportunityIO>
- <ListOfHwSiebelCfolderInterface xmlns="http://www.siebel.com/xml/HW%20Siebel%20Cfolder%20Interface">
- <Opportunity>
   <X1>  />
        <X2> />
<X3> />
</Opportunity>

</ListOfHwSiebelCfolderInterface>
  </opOpportunityIO>
  </rpc:CfolderInterfaceResponse>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>

I have tried XSLT mapping as below with no luck-->

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <SOAP-ENV:Body>
   <xsl:copy-of select="CfolderInterfaceResponse/*"/>
    </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>
</xsl:template>
</xsl:stylesheet>

Expected output xml-->

<?xml version="1.0" encoding="UTF-8"?>

<ns0:CfolderInterfaceResponse xmlns:ns0="http://siebel.com/CustomUI">
   <opOpportunityIO>
      <ns1:ListOfHwSiebelCfolderInterface xmlns:ns1="http://www.siebel.com/xml/HW%20Siebel%20Cfolder%20Interface">
         <ns1:Opportunity>
            <ns1:X1/>
            <ns2:X2/>
     <ns3:X3/>
         </ns1:Opportunity>
      </ns1:ListOfHwSiebelCfolderInterface>
   </opOpportunityIO>
</ns0:CfolderInterfaceResponse>

Regards

Mahesh

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Your XSLT mapping is actually adding a SOAP envelope!

Every tag between <xsl:template..> (except the ones starting wit <xsl:..>) is created in the output message.

Your XSLT should look like this...

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rpc="http://siebel.com/CustomUI">

          <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>

          <xsl:template match="/">

                    <xsl:copy-of select="//rpc:CfolderInterfaceResponse"/>

          </xsl:template>

</xsl:stylesheet>

former_member859847
Active Contributor
0 Kudos

Hi Martin,

Thanks a lot, It worked now.

Regards

Mahesh

Answers (2)

Answers (2)

udo_martens
Active Contributor
0 Kudos

Hi Mahesh,

the meaning of "Do not use Soap envelope" is to avoid that surrounding for the request. If you check the option on, you are selv responsible to create the enveloap and remove it in the response.

By default the box is unchecked, then  you should not see the SOAP tags Inside the integration engine (MONI). You should consider to uncheck the box.

If i understand you right you have an issue with the response mapping. But your xsl is creating an enveloap, it should do the opposite, just take prepare the response message for the outbound proxy without enveloap. Take your wished response and copy it into a stylesheet (inside template). Of course remove the prolog. Then resplace the text nodes (the values) with dynamic expressions, usually <xsl:value-of select="X-path expression"/>. If you struggle with some expressions just post it here, containing source and wished result. XSL is actually pretty easy, so with some patience and good tool like XML Spy you will get it.

/Udo

markangelo_dihiansan
Active Contributor
0 Kudos

Hello,

In receiver SOAP Adapter I have tried DO Not Use SOAP Envelope Option also, with no luck..

The webservice you are calling is RPC-based, you need to check Do Not Use SOAP Envelope and two additional mappings are needed:

1. A mapping to build the request SOAP Envelope

2. A mapping to remove the SOAP Envelope from the response message.

An alternative to this would be to generate a request/response envelope that contains no values and then import it in your message mapping as XML (instead of xsd or wsdl).

Hope this helps,

Mark