Ich hab mal ein Problem mit ansprechen von Webservice von Delphi aus.
Falls man D7 nimmt - dann funktioniert die Kommunikation, man kann aber timeout nicht hochsetzen.
Falls man D2009 nimmt - dann funktioniert die Kommunikation nicht.
D7 Request:
XML-Code:
<?
xml version="1.0"?>
<
SOAP-ENV:Envelope
xmlns:
SOAP-ENV="http://schemas.xmlsoap.org/
soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<
SOAP-ENV:Body>
<GetDebitorList xmlns="http://xxx.eu/">
<YIS_DEBI_GETLIST xmlns="http://Microsoft.LobServices.Sap/2007/03/
Rfc/">
<ADDRESS/>
<ADDRESS_AP/>
<AEDAT/>
<ERDAT/>
<KTOKD/>
<KUNNR/>
<RETURN/>
<YCMT_ADRESSE/>
</YIS_DEBI_GETLIST>
</GetDebitorList>
</
SOAP-ENV:Body>
</
SOAP-ENV:Envelope>
D2009 Request:
XML-Code:
<?
xml version="1.0"?>
<
SOAP-ENV:Envelope
xmlns:
SOAP-ENV="http://schemas.xmlsoap.org/
soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<
SOAP-ENV:Body>
<GetDebitorList xmlns="http://xxx.eu/">
<YIS_DEBI_GETLIST>
<ADDRESS xmlns="http://Microsoft.LobServices.Sap/2007/03/
Rfc/"/>
<ADDRESS_AP xmlns="http://Microsoft.LobServices.Sap/2007/03/
Rfc/"/>
<AEDAT xmlns="http://Microsoft.LobServices.Sap/2007/03/
Rfc/"/>
<ERDAT xmlns="http://Microsoft.LobServices.Sap/2007/03/
Rfc/"/>
<KTOKD xmlns="http://Microsoft.LobServices.Sap/2007/03/
Rfc/"/>
<KUNNR xmlns="http://Microsoft.LobServices.Sap/2007/03/
Rfc/"/>
<RETURN xmlns="http://Microsoft.LobServices.Sap/2007/03/
Rfc/"/>
<YCMT_ADRESSE xmlns="http://Microsoft.LobServices.Sap/2007/03/
Rfc/"/>
</YIS_DEBI_GETLIST>
</GetDebitorList>
</
SOAP-ENV:Body>
</
SOAP-ENV:Envelope>
So ein Object kommt an .NET-Seite nicht an. Nach 2 Tagen Delphi-Sourcen-Debuggen hat es geklappt mit auskommentiertem FIX_ELEM_NODE_NS define
D2009 Request mit auskommentiertem FIX_ELEM_NODE_NS define:
XML-Code:
<?
xml version="1.0"?>
<
SOAP-ENV:Envelope
xmlns:
SOAP-ENV="http://schemas.xmlsoap.org/
soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<
SOAP-ENV:Body>
<GetDebitorList xmlns="http://xxx.eu/">
<YIS_DEBI_GETLIST xmlns="http://Microsoft.LobServices.Sap/2007/03/
Rfc/">
<ADDRESS/>
<ADDRESS_AP/>
<AEDAT/>
<ERDAT/>
<KTOKD/>
<KUNNR/>
<RETURN/>
<YCMT_ADRESSE/>
</YIS_DEBI_GETLIST>
</GetDebitorList>
</
SOAP-ENV:Body>
</
SOAP-ENV:Envelope>
Allerdings kann ich kein String übergeben bekommen:
Für die string-Typen werden dann die Knoten
<xsd:GET_TEXTE>bla</xsd:GET_TEXTE>
generiert. Wobei .NET anscheinend
<GET_TEXTE>bla</GET_TEXTE>
erwartet.
Mach ich was falsch?
Hat jemand die Idee, wie das zu fixen sei?
Vielen Dank an allen!
Konstantin
P.S.: Kurze Test in D2010 hat dasselbe Problem aufgeweisen.