cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP - untyped dataset in response: mapping problem (WSDL)

Former Member
0 Kudos

Hi All,

problem is with using untyped dataset in soap response.

What’s going on. My scenario is: RFC from ERP -> XI -> (OTHER SYSTEM – SOAP Services) -> XI -> RFC in ERP.

Data from ERP (request) are send to SOAP correctly. But response contains UNTYPED DATASET, and I don’t know how to read data from that. Communication is synchronous, used is SOAP adapter. I use clasic WSDL for webservice. This WSDL is from developer whitch did this services.

Part of WSDL with untyped dataset.

<wsdl:definitions targetNamespace="http://www.atcomp.cz/webservices">

   <wsdl:types>

      <s:schema elementFormDefault="qualified" targetNamespace="http://www.atcomp.cz/webservices">

         <s:import namespace="http://www.w3.org/2001/XMLSchema"/>

         <s:element name="StavSkladuZmeny">

            <s:complexType>

            <s:sequence>

            <s:element minOccurs="0" maxOccurs="1" name="strUzivatelskeJmeno" type="s:string"/>

            <s:element minOccurs="0" maxOccurs="1" name="strUzivatelskeHeslo" type="s:string"/>

            <s:element minOccurs="1" maxOccurs="1" name="dtmDatumOd" type="s:dateTime"/>

         </s:sequence>

      </s:complexType>

   </s:element>

   <s:element name="StavSkladuZmenyResponse"> 

      <s:complexType>

          <s:sequence><s:element minOccurs="0" maxOccurs="1" name="StavSkladuZmenyResult">

             <s:complexType><s:sequence><s:element ref="s:schema"/>

              <s:any/>

          </s:sequence>

      </s:complexType>

</s:element>

</s:sequence>

</s:complexType>

</s:element>

...

...

...

Problem si in message maping at response time. XML which is in response from SOAP has this structure:

Original XML:

<DataSet>

     <xs:schema id="StavySkladu">

          <xs:element name="StavySkladu" msdata:IsDataSet="true" msdata:Locale="cs-CZ">

               <xs:complexType>

                    <xs:choice maxOccurs="unbounded">

                         <xs:element name="Zbozi">

                              <xs:complexType>

                                   <xs:attribute name="kod" type="xs:string"/>

                                   <xs:attribute name="pocet" type="xs:int"/>

                              </xs:complexType>

                         </xs:element>

                    </xs:choice>

               </xs:complexType>

          </xs:element>

     </xs:schema>

     <diffgr:diffgram>

          <StavySkladu>

               <Zbozi diffgr:id="Zbozi1" msdata:rowOrder="0" kod="34313036" pocet="100"/>

               <Zbozi diffgr:id="Zbozi2" msdata:rowOrder="1" kod="34313035" pocet="28"/>

               <Zbozi diffgr:id="Zbozi3" msdata:rowOrder="2" kod="34313023" pocet="100"/>

...

...

If in message mapping I use data from WSDL (services StavSkladuSoapOut) response is not recognized and parsed, „connection „ is stoped with error in mapping. When I import this XML with original response into message mapping, I test it with correct finish, but in normal run, error is the same.

Any idea, how to work with wsdl with untyped dataset in response? I must replace element s:scheme in WSDL by origina XML or....??

On this picture is imported original response xml file (for testing OK, real not OK (KO))

Thank you

Michal

Accepted Solutions (1)

Accepted Solutions (1)

markangelo_dihiansan
Active Contributor
0 Kudos

Hello Michal,

If that is indeed the response, then I guess you have no choice but to use Java/XSLT mapping to extract the Dataset.

Regards,

Mark

Former Member
0 Kudos

Hello Mark,

thanks for your reply. Problem is solved by XSL transformation.

Thanks

Michal

Answers (0)