cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with array type in SOAP response for sync interface

Former Member
0 Kudos

Hi,

We have a Synchronous Interface from SAP -->PI-->Unifier .The WSDL response has array type and when WSDL is imported it is showing red (I was able to activate  and use it in mapping) .We are able to send the request successfully and when retrieving the response we are getting mapping error .Please find the attachment for reference and response message from unifier .I feel that the error is because of array type .Could someone throw some light how we can solve this soon as it was a bit urgent .

http://scn.sap.com/thread/326591

I tried to create the Data Type and use the same instead of using the WSDL from External Definition but did not helped.Request your help in this.I have attached the WSDL for reference .

The response is received as shown below which is giving mapping error :

<ns1:getUDRDataResponse xmlns:ns1='http://diran:12020/ws/services/mainservice' soapenv:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' 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'><getUDRDataReturn href='#id0'/></ns1:getUDRDataResponse>

The complete response looks like below where PI is not able to receive (this is retrieved from SOAP UI)

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

- <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>

- <ns1:getUDRDataResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://general.service.webservices.skire.com">

<getUDRDataReturn href="#id0" />

</ns1:getUDRDataResponse>

- <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:XMLObject" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="mainservice">

<errorStatus soapenc:arrayType="xsd:string[0]" xsi:type="soapenc:Array" />

<statusCode xsi:type="xsd:int">200</statusCode>

<xmlcontents xsi:type="xsd:string"><?xml version="1.0" encoding="UTF-8"?> <report> <report_header> <c1>Name</c1> <c2>Number</c2> <c3>Status</c3> <c4>Location</c4> <c5>Phase</c5> </report_header> <report_row> <c1>Test - Sprint 1 - v10</c1> <c2>GB424</c2> <c3>Active</c3> <c4>/North Sea</c4> <c5></c5> </report_row> <report_row> <c1>Test Training 3</c1> <c2>GB424-TRN3</c2> <c3>Active</c3> <c4>/North Sea</c4> <c5></c5> </report_row> </report></xmlcontents>

</multiRef>

</soapenv:Body>

</soapenv:Envelope>

Accepted Solutions (1)

Accepted Solutions (1)

former_member181985
Active Contributor
0 Kudos

Hi Rajesh,

The error seems to be issue with response data. What is the mapping error trace?

May be you can try with a java or XSLT mapping for response

BR,

Praveen Gujjeti

Answers (3)

Answers (3)

Amit_Patil
Explorer
0 Kudos

Hi Rajesh,

I'm facing the same issue that you have reported here. Did you get to the bottom of this issue? Any inputs will be greatly appreciated.

Cheers,

Amit

Former Member
0 Kudos

Hello Amit,

We created an Intermediate structure and used XSLT to map the values of the response to the Intermediate structure (Fields required from the response) .Mapping and transformations is done from the data on Intermediate structure to the required structure.

Thanks and Regards,

Rajesh Naidu

Former Member
0 Kudos

Hi Praveen and Mark,

Thanks for the help.I tried to use XSLT mapping for request and try to read Response as a single string but i was getting an error in SXMB_MONI with Cannot display document format,Do you want too save it to harddisk and i could not get rid of this even after pressing Yes in popup .


Can some one help to extract only the xmlcontents  from the above response and map it to target where the target structure looks like


<report>

<report_header>

<report_row>


Please help .

markangelo_dihiansan
Active Contributor
0 Kudos

Hi Rajesh,

Check Do Not USE SOAP Envelope and then read it using java/xslt as suggested above. Of course you have to build the SOAP Envelope for the request message as well.

Regards,

Mark