Another WSDL, another problem

I struggling literally with all external SOAP web services I have to import with Service Builder since many years. I’m really thinking to just send self generated XML over HTTP instead of using that mapping in future…

First, in all cases I have to add InputChildrenNamespace -> * attribute to all operations, and there is not even a selection option in the drop down for it. But that’s not my current problem.

In the current case the RODL has mismatches with the WSDL types. I sent the WSDL to support email. With SoapUI everything works perfect it creates this request:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:HNS="http://tempuri.org/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header/>
  <SOAP-ENV:Body xmlns:ro="http://tempuri.org/">
    <v1:MT_BESTAND_REQ xmlns:v1="urn:mp.erp.mp.pim.bestand">
      <MATNR>18797</MATNR>
      <MATNR>18798</MATNR>
      <WERKS>F10</WERKS>
    </v1:MT_BESTAND_REQ>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

and I got back this response from SAP:

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP:Header/>
   <SOAP:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:HNS="http://tempuri.org/" xmlns:ro="http://tempuri.org/">
      <n0:MT_BESTAND xmlns:n0="urn:mp.erp.mp.pim.bestand" xmlns:prx="urn:sap.com:proxy:P11:/1SAI/TASADF26ED248164DF02687:750">
         <ARTIKELBESTAND MATNR="18797">
            <BESTAND WERKS="F10" BESTAND="79.0" SP_BESTAND="14.0" Q_BESTAND="5.0" MEINH="ST"/>
         </ARTIKELBESTAND>
         <ARTIKELBESTAND MATNR="18798">
            <BESTAND WERKS="F10" BESTAND="80.0" SP_BESTAND="6.0" Q_BESTAND="11.0" MEINH="ST"/>
         </ARTIKELBESTAND>
      </n0:MT_BESTAND>
   </SOAP:Body>
</SOAP:Envelope>

When I try to call the web service by RemObjects, with the imported WSDL, I see that the parameters are send wrongly structured, so SAP can’t find them:

<v1:MT_BESTAND_REQ xmlns:v1="urn:mp.erp.mp.pim.bestand">
  <DT_BESTAND_REQ_MATNR>18797</DT_BESTAND_REQ_MATNR>
  <DT_BESTAND_REQ_MATNR>18798</DT_BESTAND_REQ_MATNR>
  <WERKS>F10</WERKS>
</v1:MT_BESTAND_REQ>

So I started to investigate the generated types in Service Builder. I debugged the mapping and tried for hours different things and ended up with deleting the wrong element name of DT_BESTAND_REQ_MATNRArray. This helped to produce the desired request.

But on response I still struggling, I get an exception on mapping the response to the generated types.

and then on Continue:

image

To fix that I tried also several hours many possible ways but with no success. I’d be glad if someone could help me on a workaround because i’m running out of time on the project.

Also fixing the WSDL importer to avoid that problems would be great of course :slight_smile:

I’m using Delphi 10.3 Update 2 with RO SDK 10.0.0.1463

Thanks, logged as bugs://83908

bugs://83908 got closed with status fixed.

Remoting SDK 10.0.0.1469 fixed that problem