on 05-10-2010 10:14 AM
Hia,
We are working on ABAP Proxy --> SAP PI 7.1 --> SOAP (Asynchronous Scenario).
(ECC -> PI -> Legacy CRM)
System is getting connected and able to send asynchronous messages to legacy system. But getting following error while sending synchronous error:
2010-05-10 13:15:05 Information Delivering to channel: CC_SOAP_SOReject_Out
2010-05-10 13:15:05 Information SOAP: request message entering the adapter with user J2EE_GUEST
2010-05-10 13:15:05 Information SOAP: completed the processing
2010-05-10 13:15:05 Information SOAP: continuing to response message f33caa90-5c07-11df-c659-96d147c2ff0f
2010-05-10 13:15:05 Error SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Server was unable to process request. ---> Object reference not set to an instance of an object.
2010-05-10 13:15:05 Error Adapter Framework caught exception: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Server was unable to process request. ---> Object reference not set to an instance of an object.
2010-05-10 13:15:05 Error Delivering the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Server was unable to process request. ---> Object reference not set to an instance of an object.. Setting message to status failed.
2010-05-10 13:15:06 Error The message status was set to FAIL.
I have already checked Data Structure and it is fine.
Regards
In this scenarios we are using XSLT mapping using CDATA.
Please suggest solution.
Hi ,
Please check in CC the processing is Best Effort/Exactly once or Exactly Once in order.
Regards,
Tiny
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Please elaborate....
I am using:
1 Communication Channel
1 Receiver Determination
1 Receiver Agreement
1 Interface Determination
The scneario is we have to send information from SAP ECC to Legacy system into single xml node (in client's WSDL). To convert the whole data structure into one single SXML string we are using XSLT mapping.
Regards
do the following;
1. in sxmb_adm -> integration engine configuration -> specific configuration -> add a runtime parameter LOGGING_SYNC with the value as 1
2. now trigger the interface. then you will see two different lines for both inbound or outbound.
3. if the issue is at an adapter level check - /people/shabarish.vijayakumar/blog/2008/01/08/troubleshooting--rfc-and-soap-scenarios-updated-on-20042009
4. Also confirm your end to end design and configuration
/people/shabarish.vijayakumar/blog/2006/03/23/rfc--xi--webservice--a-complete-walkthrough-part-1
/people/shabarish.vijayakumar/blog/2006/03/28/rfc--xi--webservice--a-complete-walkthrough-part-2
instead of the RFC as above , your will be a proxy. that will be the only difference
Thanks a lot for the suggestions:
1. in sxmb_adm -> integration engine configuration -> specific configuration -> add a runtime parameter LOGGING_SYNC with the value as 1
2. now trigger the interface. then you will see two different lines for both inbound or outbound.This entry already exists and I can see 2 different lines for outbound and inbound.
3. if the issue is at an adapter level check - /people/shabarish.vijayakumar/blog/2008/01/08/troubleshooting--rfc-and-soap-scenarios-updated-on-20042009
Couldn't find solution to my error in this blog.
4. Also confirm your end to end design and configuration
/people/shabarish.vijayakumar/blog/2006/03/23/rfc--xi--webservice--a-complete-walkthrough-part-1
/people/shabarish.vijayakumar/blog/2006/03/28/rfc--xi--webservice--a-complete-walkthrough-part-2
instead of the RFC as above , your will be a proxy. that will be the only difference
hve performed all the steps except Sender Agreement as we are using Proxy instead of RFC.
Please help out!!
1) The request-message structure send by XI is not same as the one in the receiver system
This can be the issue.
let me explain you the situation:
Client has provided a WSDl with Single Node of XML and asking us to pass the whole structure as an single string along with all the nodes of data structure. To fulfil this requirement I am using XSLT mapping and because of whihc probably this error is coming. Details are mentioned below:
Our Source Strucutre
SOReject (Element)
ITEM (Elment)
SONumber (Element, xsd:string, 0..1)
DealerCode (Element, xsd:string, 0..1)
RejectionCode (Element, xsd:string, 0..1)
target Strucuture (provided in WSDL)
SORejecSOAPIn (Message)
SOReject (Element)
SORejectXML (Element, XSD:String, 0..1)
Please let me know if there is an issue in source strucutre. I think I should remove ITEM (Element) from Source strucuture)
2) You have not maintained proper Action in SOAP channel.
Proper SOAP action provided in WSDL is maintained
3) Re-check the SOAP channel configuration
Its working fine.
thanks
Please let me know if there is an issue in source strucutre. I think I should remove ITEM (Element)
from Source strucuture)
we should not worry about the source structure.....let it have 100 more elements....however when we are using the XSLT and then generating the target message structure, this target structure may not get generated properly.
Can you do one workaround.....using a SOAP client test the Webservice directly by entering the data nto the webservice structure and then making a request instead of sending it through XI.....consult with the web-service application developers and verify in what format are they expecting the data.
Regards,
Abhishek.
thanks Abhishek...
they are expecting response in XML format. Even my XML result in SXMB_MONI after all mapping n stuff is same as they are expecting but than as well getting this exceptin error.
they are expecting this result
<?xml version="1.0" encoding="UTF-8" ?>
- <DlrDiscItemWise>
- <DlrDiscItemWiseXML>
- <ns0:MT_SOReject_Sender xmlns:ns0="http://MTSINDIA/TC/SalesOrderReject">
- <ITEM>
<sSlsOrderCode>1001</sSlsOrderCode>
<sDlrCode>as</sDlrCode>
<sRejectReason>Agreement Expired</sRejectReason>
<nCircleCode>4</nCircleCode>
</ITEM>
</ns0:MT_SOReject_Sender>
</DlrDiscItemWiseXML>
</DlrDiscItemWise>
which we are able to send....out of our system I mean I can see this as output in SXMB_MONI
they are expecting this result
<?xml version="1.0" encoding="UTF-8" ?>
- <DlrDiscItemWise>
- <DlrDiscItemWiseXML>
- <ns0:MT_SOReject_Sender xmlns:ns0="http://MTSINDIA/TC/SalesOrderReject">
- <ITEM>
<sSlsOrderCode>1001</sSlsOrderCode>
<sDlrCode>as</sDlrCode>
<sRejectReason>Agreement Expired</sRejectReason>
<nCircleCode>4</nCircleCode>
</ITEM>
</ns0:MT_SOReject_Sender>
</DlrDiscItemWiseXML>
</DlrDiscItemWise>
It looks like MT_SOReject_Sender and ITEM are getting created as nodes within the target message and hence the error.....the source XML does not seem to be coming as a string which the target is expecting.
Regards,
Abhishek.
Thanks Abhishek,
But this message is created after performing XSLT mapping code which you suggested in other thread. Code is as follows for your reference;
<?xml version="1.0" encoding="UTF-8"?>
<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="no"/>
<xsl:template match="/">
<DlrDiscItemWise>
<DlrDiscItemWiseXML>
<xsl:text disable-output-escaping="yes"><![CDATA[
]]>
If you check the message in SXMB_MONI (request message mapping) how do you see the output? I mean do you see it as a string?
Yesterday i mentioned that you check with the end system what format (message payload) they are expecting.....then try sending this particular data from a SOAP tool (like SAP SOAP Tool) and verify if the end system is really able to receive it.
You need to get the sample XML from the end system.
Regards,
Abhishek.
Yes you are right, I am not able to see the message in MONI as a string. It is in the strucuture format.
It means the XSLT mapping didnt work...and it was not in Single XML.
<?xml version="1.0" encoding="UTF-8" ?>
<ns1:SalesOrderReject xmlns:ns1="http://tempuri.org/">
<ns1:SalerOrderRejXML><SalesOrderReject><SalesOrderRejXml><sSlsOrderCode>55</sSlsOrderCode><sDlrCode>66</sDlrCode><sRejectionReason>66</sRejectionReason><nCircleCode>66</nCircleCode></SalesOrderRejXml></SalesOrderReject></ns1:SalerOrderRejXML>
</ns1:SalesOrderReject>
But with SLT mapping I am getting CDATA tag.
Back to square one...how to remove that CDATA
The example shown by Michal seems to be producing result without CDATA (at least in mapping test): /people/michal.krawczyk2/blog/2005/11/01/xi-xml-node-into-a-string-with-graphical-mapping
Actually <![CDATA[ and > are an indication of start and end of CDATA section and hence the message is able to pass through the parser.....right now i dont have any XSLT editor and hence cant try out the code.....just check it out....may be tomorrow morning will try it in XI.
Source structure;
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_SOR_test xmlns:ns0="http://MTSINDIA/TEST/SingleValue">
<ITEM>
<sSlsOrderCode>100</sSlsOrderCode>
<sDlrCode>200</sDlrCode>
<sRejectReason>300</sRejectReason>
<nCircleCode>400</nCircleCode>
</ITEM>
</ns0:MT_SOR_test>
Final Target strucutre accept Web Service
<?xml version="1.0" encoding="UTF-8"?>
<ns1:SalesOrderReject xmlns:ns1="http://tempuri.org/"><ns1:SalerOrderRejXML><ITEM><sSlsOrderCode>100</sSlsOrderCode><sDlrCode>200</sDlrCode><sRejectionReason>300</sRejectionReason><nCircleCode>400</nCircleCode></ITEM></ns1:SalerOrderRejXML></ns1:SalesOrderReject>
The above result is the test result which I got from using CONCAT and CONSTANT function si graphical mapping which is not a feasible solutin. It works in small strucutres but where the data structure is big (lets say 40 nodes) and coplex structure than it will fail.
Cannot use XSLT as CDATA will come in picture. Any other options?
I tried sending message to client's server using external tool (SOAPUI) and getting "HTTP/1.1 400 Bad Request" error.
We were discussing earlier that the error migh be because of CDATA function used in XSLT mapping but it is not.
We have asked for error log from client's server and probable we will be bale to find root cause of the problem.
Will update the result and solution.
Thanks a lot
Hi Chanakya,
Did you find a solution to this issue ?
We have a simillar scenario (in XI 3.0). We get the same error "soap fault: Server was unable to process request. ---> Object reference not set to an instance of an object.</"
My mappings look good, xml (payload) is fine, works correctly from SoapUI tool too. My 'Do Not use Soap Envelope' box is unchecked in directory. I suspect some issue with the Soap Envelope.
Appreciate your input.
User | Count |
---|---|
81 | |
9 | |
9 | |
7 | |
7 | |
6 | |
6 | |
6 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.