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

XML/XSL et SOAP Discussion :

Blocage sipmle requête SOAP vba


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Par défaut Blocage sipmle requête SOAP vba
    Bonsoir,
    Je cerche à construire une requete SOAP via VBA en utilisant la librairie SOAP Toolkit (3.0).
    Je n'arrive pas à renvoyer l'information via le code ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    WebServerLocation = "http://www.mobilefish.com/services/web_service/countries.php"
     
    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
    couco = SoapClient.countryInfoByIana("FR")

    Erreur VBA 450 : Nombres d'arguments incorrects ou affectation de propriété incorrecte.
    La fonction sur le WSDL s'appelle countryInfoByIana (vérifiée via soapui).

    Auriez vous une idée ?

    Je vous remercie d'avance.


    Arnaud

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Qu'il va retourner une instance d'implémentation de IXMLNodeList, ça c'est sûr. Donc, en tout cas, la syntaxe est faute déjà et il se peut que c'est sufficient de corriger celà tout seul.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'couco = SoapClient.countryInfoByIana("FR")
    Set couco = SoapClient.countryInfoByIana("fr")

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Par défaut
    HEllo Tsuji.
    En effet, je n'avais pas pensé à passer par un set pour receuiller l'IXMLDOMSelection
    Pour ceux qui en aurait besoin un jour, je mets le code avec la sauvegarde du résultat du webservice directement en xml.
    Il suffit de passer les données dans Acces ou dans excel (via import).
    Merci pour tout

    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
     
    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:\testexport.xml"

  4. #4
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Par défaut
    Bonjour
    J'ai essayé ton exemple et ça marche
    J'ai essayé de l'adapter à Webservice de ma boite(J'envoie une adresse mail et le service web est censé me retourner la direction de l'agent ...) et là ça ne marche pas ...
    quand j'arrive à la ligne set ret = ... j'ai un msg d'incompatibilité de type ...

    Comment définissez vous la variable ret ?
    J'ai essayé différentes manière de déclarer "Ret" mais j'obtiens alors "Objet requis"

    Auriez vous une idée pour résoudre problème ?

    Merci d'avance

  5. #5
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Comment définissez vous la variable ret ?
    Il faut lire le contrat, le wsdl document, pour y arriver; il ne se fait pas dans spéculation.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Par défaut
    Bonjour,
    Je ne pense pas que cela vient de la variable.
    Tu peux comme même la déclarer (Dim ret As New IXMLDOMSelection).

    1)
    Est ce que les paramétres passés en argument sont bons ?

    2)
    Quand tu testes le code pour récupérer la cotation d'un titre (à ton bureau), est ce que cela fonctionne ?

    3)
    Essaye de désactiver le requetage HTTP (peu probable que cela soit ca car tu aurais uen erreur soap)
    SOAPClient.ClientProperty("ServerHTTPRequest") = false

Discussions similaires

  1. problème de création de requète sous VBA
    Par Golork dans le forum Access
    Réponses: 4
    Dernier message: 02/06/2006, 14h35
  2. Requète SQL vba...
    Par friiitz dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/05/2006, 13h46
  3. Problème de requête en VBA
    Par otravaglini dans le forum Access
    Réponses: 2
    Dernier message: 20/04/2006, 11h19
  4. Réponses: 2
    Dernier message: 17/10/2005, 14h58
  5. Syntaxe PARAMETERS pour requête sous VBA
    Par GAGNON dans le forum VBA Access
    Réponses: 3
    Dernier message: 28/11/2003, 11h39

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