IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Appel d'un webservice SOAP (wsdl)


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 484
    Points : 873
    Points
    873
    Par défaut Appel d'un webservice SOAP (wsdl)
    Bonjour à tous,

    je cherche depuis quelques jours un moyen d'appeler un webservice SOAP (wsdl) au moyen d'une macro en VBA... ce n'est pas pour récupérer des données mais plutôt pour piloter le lancement de jobs ETL

    j'ai trouvé des solutions mais elles font appel à une librairie (Microsoft SOAP Library 3.0) qui n'est pas dans Excel 2010, et qui n'est vraisemblablement plus en téléchargement (chaque page de msdn qui en parle semble n'avoir jamais existé, un peu à la "big brother")

    auriez-vous une solution pour faire ce genre de manipulation ?

    D'avance merci !
    laloune
    Consultant B.I.
    Spécialité(s): Excel, SQL, Business Intelligence (Jedox Palo, Talend)

    "A problem worthy of attack proves its worth by fighting back." Piet Hein

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Points : 37
    Points
    37
    Par défaut
    Bonsoir Laloune,
    Tu peux trouver le Toolkit 3.0 internet :
    http://microsoft-soap-toolkit.softwa...ormer.com/3.0/

    Voici un exemple de code qui fonctionne sous l'appel d'un webservice
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Dim Items
    Dim SOAPClient
    Dim StrDisplay
    Dim WebServerLocation As String
    Dim unDocument  As New DOMDocument60
    Dim unElement   As IXMLDOMElement
    Dim unNoeud     As IXMLDOMNode
    Dim sRecherche  As String
    Dim sResultat   As String
    Dim sNameSpace  As String
     
     
    WebServerLocation = "http://www.restfulwebservices.net/wcf/StockQuoteService.svc"
     
    Set SOAPClient = CreateObject("MSSOAP.SoapClient30")
    SOAPClient.ClientProperty("ConnectorProgID") = "MSSOAP.WinInetConnector30"
     
    SOAPClient.mssoapinit WebServerLocation & "?wsdl"
    SOAPClient.ClientProperty("ServerHTTPRequest") = True
     
    SOAPClient.ConnectorProperty("ConnectTimeout") = 30000
    SOAPClient.ConnectorProperty("EndPointURL") = WebServerLocation
     
    Set ret = SOAPClient.GetStockQuote("IBM")
     
     
    Set unElement = ret.Context
    Call unDocument.loadXML(unElement.XML)
    unDocument.async = True
    unDocument.validateOnParse = True
    unDocument.Save "C:\Users\nono\Desktop\testexport.xml"
    Bon courage

  3. #3
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 484
    Points : 873
    Points
    873
    Par défaut
    Bonjour nonopower et merci pour ta réponse !

    malheureusement sur la page du lien que tu m'as donné:
    "The download link is unavailable now. Try visiting the developer's home page."

    et en cherchant "soap toolkit 3.0" dans le download center de microsoft:
    http://www.microsoft.com/en-us/downl...0toolkit%203.0

    j'ai véritablement l'impression qu'on ne le trouve plus nulle part ! ca m'étonne quand même...

    EDIT: je l'ai trouvé ici: SOAP Toolkit - CNET Download.com
    il est bien spécifié qu'il est "deprecated" et qu'il est remplacé par le framework .NET. Est-ce que ca signifie qu'il faut que j'installe VS et que je commence à coder en .Net ? J'avoue que je n'ai pas trop envie...

    merci pour l'aide !
    laloune
    Consultant B.I.
    Spécialité(s): Excel, SQL, Business Intelligence (Jedox Palo, Talend)

    "A problem worthy of attack proves its worth by fighting back." Piet Hein

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 127
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par laloune Voir le message
    Bonjour nonopower et merci pour ta réponse !

    malheureusement sur la page du lien que tu m'as donné:
    "The download link is unavailable now. Try visiting the developer's home page."

    et en cherchant "soap toolkit 3.0" dans le download center de microsoft:
    http://www.microsoft.com/en-us/downl...0toolkit%203.0

    j'ai véritablement l'impression qu'on ne le trouve plus nulle part ! ca m'étonne quand même...

    EDIT: je l'ai trouvé ici: SOAP Toolkit - CNET Download.com
    il est bien spécifié qu'il est "deprecated" et qu'il est remplacé par le framework .NET. Est-ce que ca signifie qu'il faut que j'installe VS et que je commence à coder en .Net ? J'avoue que je n'ai pas trop envie...

    merci pour l'aide !
    Bonjour

    As tu réussi à te connecter à un WebServices?

    J'essai également via Access, mais ma connexion retourne une erreur.
    Comment as tu fait?

    Merci

  5. #5
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 968
    Points : 9 322
    Points
    9 322
    Par défaut
    hello,
    bien que cette discussion soit ancienne, voici un exemple de connexion à un webservice. Le webservice est celui de Mantis bug tracker (logiciel de gestion de bug sur serveur web).Pour communiquer avec le webservice à partir de vba j'utilise la bibliothèque Microsoft Office Soap Type Library v3.0 .
    1 - dans l'éditeur VBA dans outils/références faire parcourir et choisir le fichier MSSOAP30.DLL dans le répertoire C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14. Bien sûr le répertoire dépend de la version d'office utilisée (pour moi c'est Excel 2010 32 bits). Je ne suis pas sûr que le fichier MSSOAP30.DLL soit disponible dans toutes les versions d'Excel (si quelqu'un peut le vérifier pour sa version d'Excel, indiquer dans cette discussion la disponibilité du fichier pour les versions d'Excel).
    2 - Normalement une nouvelle bibliothèque est apparue dans la liste des références : Microsoft Office Soap Type Library v3.0 --> la cocher
    Et voici le code pour récupérer la description (champ 18 de la réponse) du premier bug de mantis en utilisant la description wsdl du webservice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub TestWebService()
    Dim webservice As SoapClient30
    Dim results
    Dim Description
     
    ' Pointer l' API SOAP vers le web service que l'on veut appeler...
    Set webservice = New SoapClient30
    Call webservice.MSSoapInit(par_WSDLFile:="http://localhost/mantisbt-1.3.0/api/soap/mantisconnect.php?wsdl")
     
    ' Appel du  web service de récupération de bug
    Set results = webservice.mc_issue_get("administrator", "password", 1)
    Description = results.Item(18).Text
    Set webservice = Nothing
    End Sub
    et voici un autre exemple qui utilise le webservice gratuit de GlobalWeather pour récupérer le temps actuel à Lille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub TestRecupTemps()
    Dim webservice As SoapClient30
    Dim results
    Dim Description
    ' Pointer l' API SOAP vers le web service que l'on veut appeler...
    Set webservice = New SoapClient30
    Call webservice.MSSoapInit(par_WSDLFile:="http://www.webservicex.com/globalweather.asmx?WSDL")
    ' ' Appel du  web service de récupération du temps à Lille
    results = webservice.GetWeather("Lille", "France")
    MsgBox results
    Set webservice = Nothing
    End Sub
    Nom : GlobalWeather.png
Affichages : 3518
Taille : 18,3 Ko

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

Discussions similaires

  1. [2005] Appel WebService SOAP dans un TRIGGER
    Par dsr57 dans le forum Développement
    Réponses: 5
    Dernier message: 03/12/2014, 14h37
  2. Appel WebService Soap en C++
    Par TheFurby dans le forum Langage
    Réponses: 7
    Dernier message: 15/07/2014, 14h23
  3. Appel d'une Webservice SOAP en Java
    Par shaun_the_sheep dans le forum Services Web
    Réponses: 0
    Dernier message: 25/03/2013, 08h45
  4. [Web Service] Appel Webservice SOAP
    Par HaTnuX dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 16/08/2008, 22h33
  5. [Web Service][SOAP] Appel d'un WebService dans PHP
    Par ggjedi dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 09/02/2008, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo