on ‎2014 Nov 11 6:05 AM
Hello experts,
I am trying to consume an external web service in SAP PI (Proxy -> SOAP). The web service uses SOAP 1.1 and has the following SOAP header:
<soapenv:Header>
<urn:AuthenticationInfo>
<urn:userName> </urn:userName>
<urn:password> </urn:password>
<!--Optional:-->
<urn:authentication>?</urn:authentication>
<!--Optional:-->
<urn:locale>?</urn:locale>
<!--Optional:-->
<urn:timeZone>?</urn:timeZone>
</urn:AuthenticationInfo>
</soapenv:Header>
My question is if I can fill the SOAP Header from the proxy consuming ABAP program or do I have to wrote an XSLT mapping for this?
Or, alternatively, will the SOAP Receiver adapter automatically fill the credentials if I maintain the Authentication details in the ID Communication channel?
Looking forward to your responses.
Regards..
Request clarification before answering.
Hello experts.
I have used an XSLT mapping and have managed to generate the request message.
Now I have an issue with the response.
My response structure is:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns0:UpdateTaskResponse xmlns:ns0="urn:EQU:SAP:UpdateTask">
<ns0:Request_ID>000000000000008</ns0:Request_ID>
</ns0:UpdateTaskResponse>
</soapenv:Body>
</soapenv:Envelope>
I am unable to map this to my response message type.
I tried using this XSLT:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="UTF-8" method="xml"/>
<xsl:template match="*">
<xsl:copy-of select="soap:Body/*"/>
</xsl:template>
</xsl:stylesheet>
But I am still not able to process the response.
Any help on this please?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I finally got this scenario working.
The issue was that, in spite of ticking the ‘Do not use SOAP envelope’ checkbox, the response message was wrapped in a SOAP envelope. Also, my endpoint URL in the SOAP comm channel wasn’t the correct one ( I had wrongly used the WSDL link and not the endpoint).
So I changed the URL and then created an inbound XSLT for removing the SOAP envelope from the response message.
The XSLT mentioned in my previous response worked a charm.
I picked up both the XSLTs from Simone Pantaleoni's responses in other threads..
Thanks to all..
| User | Count |
|---|---|
| 8 | |
| 5 | |
| 5 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.