on 03-10-2016 11:17 PM
Hello!! Gurus
We have a SOAP(external vendor) to SOAP (internal 3rd party application) interface
We matched the data type to be the same on both sides.
All the sync websercives are working correctly incluing the SOAP attachments being passed in couple of them.
However, the SOAP attachments are not being viewed by the 3rd party application which is receiving the attachment in response.
PI SXMB_MONI is having the attachment available.
Also, if I call this message through SOAP UI - we are unable to see the attachment in SOAP UI same as 3rd party application (PI provided WSDL)
Can you please let me know if this anything we could be missing - we are using the standard SOAP adapter (NO Axis adapter)- keep attachment checked - as mentioned we are able to view attachment - in SXMB_MONI - its only the 3rd party internal (non SAP system) which says its not seeing attachment.
Additionally below is the data type of the field associated to which the attachment is tied to on the SOAP response:
We have a XSLT mapping to handle the attachment as well (see below)
XSLT mapping placed after the message mapping:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:stylesheet version="1.0" xmlns:ns0="http://www.w3.org/1999/XSL/Transform" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:ns2="xsl">
<ns0:template match="node() | @*">
<ns0:copy>
<ns0:apply-templates select="node() | @*"/>
</ns0:copy>
</ns0:template>
<ns0:template match="xop:Include"/>
</ns0:stylesheet>
Sorry for long posting/message query ... Thanks for reading thru it ... Your help is greatly appreciated!!
Thank you,
Ritu
Ritu,
As you are able to see the attachment in soap ui so i dont think their is something problem with your configuration.
But however what i observe is :
- SOAP(external vendor) ~ vendor provided WSDL has the data type as:
- element name="FileAttachmentHandler" type="xs:base64Binary" xmime:expectedContentTypes="application/octet-stream"
as per my experience some of the web service expects the attachment to be converted into base64/binary and sent it to one of the field in the response structure ! you can ask your third party vendor on how they are expecting the attachment ?
If you want the content type to be set as application/octet-stream then you can use MTB module in your receiver soap channel. but i dont think it makes any difference
Br,
Manoj
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Manoj
Thank you for your response!!
Just needed help in understanding your suggestions:
The main issue is if I could see the attachments in SOAP UI - I would think everything with PI WSDL is good to handle attachments - BUT the very reason we are not seeing SOAP attachments tell me something incomplete with WSDL as pointed out above.
Please, let me know your thoughts on best possible approach to resolve so that the receiver system can start gettng the attachments - even though we dont see any errors in PI.
Thank you,
Ritu
So if have not misunderstood your query :
Request message : external vendor ---(only Data)--------->PI--(only Data)------>internal 3rd party application .
Response message : external vendor <-----(only Data)------PI<---(Data + attachment)---internal 3rd party application .
so that attachment which is coming from internal 3rd party is visible in PI but no to the sender (external vendor )
is my above understanding right ??
Hi Manoj
Here is the actual flow:
Request message : external vendor ---(only Data)<---------PI--(only Data)<------internal 3rd party application .
Response message : external vendor ----->(only Data)------PI--->(Data + attachment)---internal 3rd party application .
The above attachment is being view in SXMB_MONI its not seen in Internal 3rd party application.
Also, simulated the above flow in SOAP UI instead of being called from internal 3rd party application .- even SOAP UI was not getting the attachment.
Is b'cos the below difference in the data type of the response:
type="xs:base64Binary"xmime:expectedContentTypes="application/octet-stream" as opposed to just defining it as just type="xs:base64Binary"
As the PI build WSDL of the internal application has only type="xs:base64Binary" as I was unable to define the xmime:expectedContentTypes="application/octet-stream"
Please, let me know you thoughts ESP SOAP UI not recieing the attachment and SXMB_MONI able to view the attachment
Thank you,
Ritu
so by above comment i understand that the attachment is being generated from PI itself, may i know how are you generating attachment in PI ?? i don't think the above xslt mapping is generating the attachment , are u using and udf / java mapping to do so ??
Please put the screenshot of the sxmb_moni where you are able to see the attachment and also the receiver soap channel screenshot .
Sorry correction - the attachment is being passed from the external vendor on the response:
Request message : external vendor ---(only Data)<---------PI--(only Data)<------internal 3rd party application .
Response message : external vendor ----->((Data + attachment)-------PI--->(Data + attachment)---internal 3rd party application (receiving only payload No attachment).
Please, find attached SOAP Receiver Channel & SXMB_MONI attachment screenshot as well.
Hello Ritu,
Are you able to see the attachment and message properly triggered from PI receiver channel as well?
If yes no issues in PI.
Check with the third party application are they expecting the attachment in any particular format or any specific encoding.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.