Office: (Office 2010) SOAP und VBA

Helfe beim Thema SOAP und VBA in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich kenne mich mit SOAP gar nicht aus, muss aber über SOAP Daten von einem Webservice bekommen. Geht das mit VBA und wenn ja, wie? Gruss,... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von forumseeker, 24. April 2018.

  1. SOAP und VBA


    Hallo,

    ich kenne mich mit SOAP gar nicht aus, muss aber über SOAP Daten von einem Webservice bekommen. Geht das mit VBA und wenn ja, wie?

    Gruss,

    Andreas

    :)
     
    forumseeker, 24. April 2018
    #1
  2. Hallo Andreas,

    in der Wikipedia gibt es einen Artikel dazu, der sehr interessant ist.

    Außerdem kannst Du mal google bemühen und schreibst einfach nur "SOAP und VBA" und wirst bei Excel fündig. *Smilie

    http://www.herber.de/forum/archiv/14...ices_SOAP.html

    Vielleicht hilft Dir das weiter. Der Code in Excel und Access ist normal in den Bereichen identisch.

    VG
    trekking
     
    trekking1, 26. April 2018
    #2
  3. Habe alles schon gelesen, bin aber nicht schlau draus geworden. Hatte mir hier mehr Hilfe versprochen.
     
    forumseeker, 26. April 2018
    #3
  4. SOAP und VBA

    Hi Andreas,

    was erwartest Du genau?

    Woraus bist Du nicht schlau geworden. Der Link zum Heber Forum sieht doch recht gut aus. Hast Du darauf basierend mal was gemacht?

    VG
    trekking
     
    trekking1, 26. April 2018
    #4
  5. Werde das alles noch mal durchackern.
     
    forumseeker, 26. April 2018
    #5
  6. Um welchen Webservice geht es denn genau?
     
    CatboyJones, 26. April 2018
    #6
  7. Das steht in der Schnitstellenbescheibung:

    Der DRSC ist über eine Schnittstelle erreichbar, die technisch als WebService ausgelegt ist, und auf den WebServern der DeDeNet residiert.

    1.1. Methode
    Die Schnittstelle soll eine GetPosition() Methode zur Verfügung stellen. GetPosition() liefert auf eine Anfrage die entsprechenden Ortungsdaten aller im DeDeFleet System verfügbaren Fahrzeuge zurück.

    1.2. Request
    Adresse: http://portal.dedefleet.de/Services/...stService.asmx
    WSDL: http://portal.dedefleet.de/Services/...vice.asmx?WSDL
    Der Request wird als UTF-8 codiertes XML –String an den DRSC gesandt. Beispiel:

    Code:
     
    forumseeker, 26. April 2018
    #7
  8. SOAP und VBA

    Beispiel:
     
    forumseeker, 26. April 2018
    #8
  9. Du musst die Spitzklammern im XML codieren um sie hier zu posten.
    Code:
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    sonic8, 26. April 2018
    #9
  10. Keine Ahnung, was man da in den Request schreibt, aber prinzipiell geht das so:


    PHP:
             Private Const sWebServiceURL As String "http://portal.dedefleet.de/Services/PositionRequestService.asmx"

    Private Sub TestDeDeFleet()
    Dim sRequest As String

    sRequest 
    "??"
    DeDeFleet_GetPosition sRequest

    End Sub

    Public Sub DeDeFleet_GetPosition(sRequest As String)
    Dim sSOAPMsgHead As StringsSOAPMsgFoot As String
    Dim sSOAPMsgBody 
    As String
    Dim sResponse 
    As String

    sSOAPMsgHead 
    "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" " _
    "xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" " _
    "xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"

    sSOAPMsgBody "<soap:Body>"
    sSOAPMsgBody sSOAPMsgBody "<GetPosition xmlns=""http://tempuri.org/"">"
    sSOAPMsgBody sSOAPMsgBody "<request>" sRequest "</request>"
    sSOAPMsgBody sSOAPMsgBody "</GetPosition>"
    sSOAPMsgBody sSOAPMsgBody "</soap:Body>"

    sSOAPMsgFoot "</soap:Envelope>"

    sResponse GetHttpWebRequestResponse(sSOAPMsgHead sSOAPMsgBody sSOAPMsgFoot)

    Debug.Print sResponse

    End Sub

    Private Function GetHttpWebRequestResponse(sBody As String) As String
    Dim oHttpRequest 
    As New MSXML2.XMLHTTP60

    With oHttpRequest
    .Open "POST"sWebServiceURLFalse
    .SetRequestHeader "Content-Type""text/xml"
    .SetRequestHeader "Content-Length"Len(sBody)
    .
    Send sBody
    GetHttpWebRequestResponse 
    = .responseText
    End With

    End 
    Function
     
    CatboyJones, 26. April 2018
    #10
  11. \@CatBoy
    Hi Jones eine Frage zu Deiner Code Schreibweise.

    Warum schreibst Du

    Code:
    Nicht so:
    Code:
    Sieht irgendwie übersichtlicher aus und spart Tip oder Kopier Arbeit.

    Hab die Spitzklammern mal weggelassen, da Sonic zwar gesagt hat, dass diese codiert werden müssen, aber für mich als unwissenden nicht wie : Kannst Du das nachholen Sonic. Wäre super.

    VG
    trekking
     
    trekking1, 26. April 2018
    #11
  12. Werde das alles gleich mal ausprobieren..
     
    forumseeker, 26. April 2018
    #12
  13. SOAP und VBA

    \@trekking1

    Ist traditionsbedingt. Wenn es länger wird, ist es so übersichtlicher.

    z.B. Exchange Web Service (ews)


    PHP:
             Private Function GetSOAPBody_FindEMails(sSOAPMsgItemIds As String) As String
    Dim sSOAPMsgHead As String, sSOAPMsgOperation As String, sSOAPMsgFoot As String
    Dim sSOAPMsgImpersonate As String
    Dim sBody As String

    sSOAPMsgImpersonate = ""

    sSOAPMsgHead = "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" " & _
    "xmlns:m=""http://schemas.microsoft.com/exchange/services/2006/messages"" " & _
    "xmlns:t=""http://schemas.microsoft.com/exchange/services/2006/types"" " & _
    "xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"
    sSOAPMsgHead = sSOAPMsgHead & "<soap:Header>"
    sSOAPMsgHead = sSOAPMsgHead & "<t:RequestServerVersion Version=""Exchange2010"" />"
    sSOAPMsgHead = sSOAPMsgHead & sSOAPMsgImpersonate
    sSOAPMsgHead = sSOAPMsgHead & "</soap:Header>"
    sSOAPMsgHead = sSOAPMsgHead & "<soap:Body>"

    sSOAPMsgOperation = "<m:GetItem>"
    sSOAPMsgOperation = sSOAPMsgOperation & "<m:ItemShape>"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:BaseShape>IdOnly</t:BaseShape>"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:AdditionalProperties>"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""item:DateTimeReceived"" />"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""item:DateTimeSent"" />"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""item:Subject"" />"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""message:IsRead"" />"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""item:Importance"" />"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""item:HasAttachments"" />"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""message:Sender"" />"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""message:ToRecipients"" />"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""message:CcRecipients"" />"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""message:BccRecipients"" />"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""message:InternetMessageId"" />"
    'sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""calendar:UID"" />"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:ExtendedFieldURI PropertySetId=""6ED8DA90-450B-101B-98DA-00AA003F1305"" " & _
    "PropertyId=""3"" PropertyType=""Binary"" />" ' CalendarUid
    'sSOAPMsgOperation = sSOAPMsgOperation & "<t:FieldURI FieldURI=""item:Attachments"" />"
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:ExtendedFieldURI PropertySetId=""00020328-0000-0000-C000-000000000046"" " & _
    "PropertyId=""4240"" PropertyType=""Integer"" />" ' PidTagFlagStatus
    sSOAPMsgOperation = sSOAPMsgOperation & "<t:ExtendedFieldURI PropertySetId=""00020328-0000-0000-C000-000000000046"" " & _
    "PropertyId=""4096"" PropertyType=""String"" />" ' PidTagBody
    'sSOAPMsgOperation = sSOAPMsgOperation & "<t:ExtendedFieldURI PropertySetId=""00020328-0000-0000-C000-000000000046"" " & _
    '                                        "PropertyId=""4105"" PropertyType=""Binary"" />" ' PidTagRtfCompressed
    sSOAPMsgOperation = sSOAPMsgOperation & "</t:AdditionalProperties>"
    sSOAPMsgOperation = sSOAPMsgOperation & "</m:ItemShape>"
    sSOAPMsgOperation = sSOAPMsgOperation & "<m:ItemIds>" & sSOAPMsgItemIds & "</m:ItemIds>"
    sSOAPMsgOperation = sSOAPMsgOperation & "</m:GetItem>"

    sSOAPMsgFoot = "</soap:Body>"
    sSOAPMsgFoot = sSOAPMsgFoot & "</soap:Envelope>"

    sBody = "<?xml version=""1.0"" encoding=""utf-8""?>"
    sBody = sBody & sSOAPMsgHead
    sBody = sBody & sSOAPMsgOperation
    sBody = sBody & sSOAPMsgFoot

    GetSOAPBody_FindEMails = sBody

    End Function         
     
    CatboyJones, 27. April 2018
    #13
  14. Du konvertierst die Spitzklammern in die entsprechenden HTML-Entites. Die XML-Tools von Notepad++ können das auf Knopfdruck.
    Das sieht dann so aus:
    Code:
    PS: Diesen Text habe ich jetzt doppelt HTML-Codiert, damit man die Rohfassung sieht, und nicht die gerenderte Darstellung im Browser.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  15. \@Catboy
    OK bei 24 x _ ist bei Access ja Schluss, mich verwirrt es mehr. Hatte das früher ja auch so geschrieben und mache es jetzt anders. Danke für die Erklärung.

    @sonic
    Super, danke dafür.

    VG
    trekking
     
    trekking1, 27. April 2018
    #15
Thema:

SOAP und VBA

Die Seite wird geladen...
  1. SOAP und VBA - Similar Threads - SOAP VBA

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. SOAP API in Access

    in Microsoft Access Hilfe
    SOAP API in Access: Hallo zusammen, hat schon mal jemand SOAP API mit Access realisiert? Würde da gerne etwas erstellen, mir fehlen aber bissl die ansetzte / Grundlagen Gruß 312126
  7. SOAP Aufruf

    in Microsoft Access Hilfe
    SOAP Aufruf: Hallo zusammen, ich habe das SOAP Toolkit 3.0 installiert um Daten über eine SOAP Schnittstelle auszulesen. Da ich für die Umsetzung ein Beispiel benötigte, bediente ich mich für den Aufruf hier...
  8. ACCESS/VBA SOAP WebService

    in Microsoft Access Hilfe
    ACCESS/VBA SOAP WebService: Hi, meine Erfahrung mit SOAP-Schnittstellen laufen gegen Null. Ich muss aus VBA heraus einen WebService ansprechen. Dafür nutze ich MS Toolkit 3.0 Der Request erfordert einen Parameter als...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden