Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1476to1480
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - Webservices (SOAP)

VBA - Webservices (SOAP)
26.02.2016 11:37:03
Peter
Hallo zusammen,
ich mache gerade die ersten Gehversuche mit SOAP-Aufrufe aus VBA, komme aber nicht sehr weit. Ich habe ein einfaches Webservice-Beispiel gewählt: Lesen von Daten aus einer Ortsdatenbank. Mit SoapUI funktioniert alles prächtig, nur der VBA-Code scheint nicht zu stimmen.
XML-Code aus SoapUI:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://gov.genealogy.net/ws">
<soapenv:Header/>
<soapenv:Body>
<ws:searchByName>
<placename>Heidkate</placename>
</ws:searchByName>
</soapenv:Body>
</soapenv:Envelope>
VBA-Code:
Sub SOAP_ComplexSearch()
Dim ObjHTTP        As New MSXML2.XMLHTTP
Dim sURL           As String
Dim sEnv           As String
sURL = "http://gov.genealogy.net/services/ComplexService?wsdl"
sEnv = "<?xml version=""1.0"" encoding=""utf-8"& _
quot;?>"
sEnv = sEnv & "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap. _
org/soap/envelope/"""
sEnv = sEnv & "xmlns:ws=""http://gov.genealogy.net/ws"">"
sEnv = sEnv & "<soapenv:Header/>"
sEnv = sEnv & "<soapenv:Body>"
sEnv = sEnv & "<ws:searchByName>"
sEnv = sEnv & "<placename>Heidkate</placename>"
sEnv = sEnv & "</ws:searchByName>"
sEnv = sEnv & "</soapenv:Body>"
sEnv = sEnv & "</soapenv:Envelope>"
ObjHTTP.Open "Post", sURL, False
ObjHTTP.setRequestHeader "Content-Type", "text/xml"
ObjHTTP.send (sEnv)
MsgBox ObjHTTP.responseText
Set ObjHTTP = Nothing
End Sub

Was ist falsch oder was fehlt?
Viele Grüße
Peter

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Webservices (SOAP)
28.02.2016 11:37:41
fcs
Hallo Peter,
es scheint bei dir ein Problem bei der Deklaration der Variablen "ObjHTTP" zu sein.
Jedenfalss läuft bei mir (Windows 10 /Office 365 / Excel 16) das Makro wenn ich im VBA-Editor unter Extras den Verweis setze für
Microsoft XML, v6.0 - evtl. geht's auch mit v3.0
und im Makro die Deklaration der Variablen in der Dim-Zeile anpasse.
Ich auch noch ein paar Zeilen eingebaut, um Daten/Informationne zum ObjHTTP-Object in Textdateien zu schreiben.
https://www.herber.de/bbs/user/103937.txt
Gruß
Franz

Anzeige
AW: VBA - Webservices (SOAP)
29.02.2016 20:58:21
Peter
Hallo Franz,
vielen Dank für Deine Antwort. Das Problem lag nicht an der Definition der Objektvariablen - die Verweise waren korrekt eingestellt auf Microsoft XML 6.0. Das Problem lag an der URL, welche auf die WSDL anstatt auf die Zugriffsmethode gezeigt hat. Nach einsprechender Anpassung hat alles funktioniert.
Hier das neue Coding:
'Set Reference to Microsoft XML, v6.0
Sub SOAP_ComplexSearch()
Dim wsTab1         As Worksheet
Dim ObjHTTP        As New MSXML2.XMLHTTP
Dim sURL           As String
Dim sEnv           As String
Dim sPlaceName     As String
Set wsTab1 = ThisWorkbook.Sheets(1)
sPlaceName = CStr(wsTab1.Range("B2").Value)
sURL = "http://gov.genealogy.net/services/ComplexSearch/SearchByName"
sEnv = "<?xml version=""1.0"" encoding=""utf-8"& _
quot;?>"
sEnv = sEnv & "<soapenv:Envelope"
sEnv = sEnv & " xmlns:xsd=""http://www.w3.org/2001/XMLSchema""& _
quot;
sEnv = sEnv & " xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/& _
quot;""
sEnv = sEnv & " xmlns:ws=""http://gov.genealogy.net/ws"">"
sEnv = sEnv & "<soapenv:Body>"
sEnv = sEnv & "<ws:searchByName>"
sEnv = sEnv & "<placename>" & sPlaceName & "</placename> _
"
sEnv = sEnv & "</ws:searchByName>"
sEnv = sEnv & "</soapenv:Body>"
sEnv = sEnv & "</soapenv:Envelope>"
ObjHTTP.Open "Post", sURL, False
ObjHTTP.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
ObjHTTP.send (sEnv)
wsTab1.Range("B4")= ObjHTTP.responseText
Set ObjHTTP = Nothing
End Sub

Viele Grüße
Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge