Skip to Content
avatar image
Former Member

Problem with array type in SOAP response for sync interface

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>

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

4 Answers

  • Best Answer
    Aug 10, 2014 at 06:31 PM

    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

    Add comment
    10|10000 characters needed characters exceeded

  • Aug 11, 2014 at 02:49 AM

    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

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Aug 11, 2014 at 06:46 AM

    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 .

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Apr 03, 2016 at 07:32 AM

    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

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      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