on 01-29-2016 10:18 PM
I’m trying a scenario in SAP PI to consume an external web service : http://www.webservicex.com/globalweather.asmx?WSDL
SAP ECC <--->PI <-----> external web service.
Created all the ESR and IB configuration in PI. I'm on PI 7.3 java stack only.
Steps I have followed:
1) Import third party WSDL as external definition in the ESR
2) Created inbound interface based on External message types
3) Created Data types/Message types and Outbound interface
4) Created Message mapping and operation mapping
5) In Integration builder created Comm channel for SOAP receiver
6) created communication component and CC for ECC system for SOAP sender.
7) created integrated configuration using the interfaces, comm channels and operation mapping
Now when I go to my ECC system, generate the proxy and try to execute, I’m seeing an error “PARSING.GENERAL”.
This is the error in message log in PI.
Even the payload is blank
Please help !!
Thanks in advance.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
What is proxy report? How do I do that?
Im just regenerating the proxy in my ECC , activating it and then testing.
Thanks.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi
Manoj,
If I use "Stateless" I'm getting an Interface determination error so changed it to "-Stateless(XI 3.0 Compatabile)"
Every time I'm regenerating proxy and activating proxy in ECC system before testing just to make sure all my changes are up to date.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Aday,
As Raghu already suggested you need to handle CDATA section in your response.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes" encoding="utf-8"/>
<!--Identity template simply copies content forward -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="*"/>
<xsl:value-of select="substring-after(text(),'?>')" disable-output-escaping="yes"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Regards,
Praveen.
Hello Aday,
Raghuraman brought to attention a valid point regarding response structure, and Praveen provided extensive example on that, but looking into an error text and screenshots you provided, I'm concerned about error happening already in a request flow (normal response message with CDATA content is not even produced at this step, it only returns an exception).
As you mentioned in one of screenshots, request message in PI is empty and contains no country name and city name - that is a cause of a web service call failure.
Unfortunately, I don't see mapping rules for these two fields in your mapping, but I would assume they are one to one, with no conversion from source value to the one constructed in a target message leaving PI and being sent to a web service. Thus, I would suspect a sender, SAP ECC system, is not providing these values in the produced request message. As it can be seen from your recent screenshots, ECC issues general parsing error - please have a look into it and investigate its root cause (for example, by checking processed messages in ECC in tx. SXMB_MONI or SXI_MONITOR and corresponding error details there, or in log in tx. SPROXY after you attempt to send the generated request message)? Please provide details of the error that is caught in ECC so that we may look into possible causes of its origin.
Regards,
Vadim
Thanks for you responses Vadim and Praveen.
Very much appreciated.
This is request and response mapping. these are just one-to-one mapping.
I agree with you Vadim. I feel the issue is on request side. XML is not rightly passed from my ECC system so it giving an mapping error.
this is the error I see in PI message log
Are there any other steps that need to be done in my ECC system?
In the SXMB_MONI, for that message I see the bellow :
Thanks for you help !!
Raghuraman, it is unlikely to be an issue with SOAP action - SOAP action is an attribute of a receiver channel, and here the problem occurs already at preceding step, during mapping execution.
Aday, can you please:
Regards,
Vadim
Hello Aday,
Check the data as Vadim suggested.
Also I guess the response is coming in CDATA with XML in it, are you handling the same in mapping?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Aday,
Even though WSDL of the web service defines elements "CityName" and "CountryName" as optional in the request message type for the operation "GetWeather", please ensure they both are contained in the request message:
From the error you get, it looks like "CountryName" is missing in the request message which is sent to the web service.
Regards,
Vadim
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
94 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.