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

WinDev Discussion :

utilisation d'un webservice SAOP


Sujet :

WinDev

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 365
    Points : 176
    Points
    176
    Par défaut utilisation d'un webservice SAOP
    Bonjour,
    je crée un projet pour un client pour que ses clients puissent saisir des demandes de livraisons et de dispatcher ces livraisons entre différents transporteurs selon leurs tarif.

    Je cherche donc à me connecter à leurs différentes API; la plupart utilisent des API REST, mais DPD utilise encore une API SOAP et je rencontre un soucis lors de l'utilisation de celle-ci.

    J'ai bien importé le webservice dans mon projet comme décrit dans la documentation PCSOFT.

    voici un imprim écran de mon webservice (il est importé 2 fois car il y en a un pour l'environnement de prod et un pour l'environnement de test cher DPD donc je dois déclarer dans quel webservice je suis lorsque j'instancie un objet.)
    Nom : webservice.png
Affichages : 575
Taille : 18,3 Ko

    mon soucis vient lorsque je souhaite utiliser la méthode CreateMultiShipment (mais je pense que mon soucis sera le même que pour toutes les autres méthodes).

    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    requete est un EPrintWebservice1.CreateMultiShipment
    reponseRequete est un EPrintWebservice1.CreateMultiShipmentResponse
     
    requete.request.customer_centernumber = customerCenterNumber
    ...
     
    reponseRequete.CreateMultiShipmentResult = EPrintWebservice1.CreateMultiShipment(requete.request)
    J'ai essayé différentes écritures, mais j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Le service a renvoyé l'erreur suivante : 
    Code : 'Server'
    Message : Server was unable to process request. ---> Object reference not set to an instance of an object.
    Il semblerait qu'un objet ne soit pas instancié, mais je ne vois pas lequel.
    Quand j'utilise les points d’arrêts, je vois bien que l'objet requete.request est bien initialisé avec les données que je lui ai données mais reponseRequete.CreateMultiShipmentResult est vide

    Je pense que mon problème est un bête problème dans la manière d'appeler la méthode.

    Qu'est-ce que j'ai mal écrit?

    Je vous remercie
    Qui vit par le Troll périra par le Troll!

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    Ma réponse ne va pas corriger ton souci mais je t'expose ma façon de faire avec les webservices.
    Je n'utilise que des structures et des procédures pour mes interrogations (aucun objet donc).

    En parallèle, je prends SOAPUI pour "voir" comment le web service répond et ainsi comparer mes résultats.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Dans un premier temps, pourquoi ne pas créer 2 configurations via l'éditeur de configuration une prod et une test. Cela permettrait un appel sans les préfixes.
    Dans un deuxième temps as tu exécuté la procédure pas à pas pour voir où cela péchait.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 365
    Points : 176
    Points
    176
    Par défaut
    Bonjour,
    je vous remercie pour vos réponses.

    J'ai viré le webservice de production pour ne plus avoir les préfixes mais j'ai toujours la même erreur.

    Quand je parcours ma fonction en pas à pas, je vois bien ma classe 'requete' qui s'initialise. C'est l'appel à la méthode CreateMultiShipment qui me renvoie cette erreur.


    J'ai créé un ticket au service technique DPD parce que j'avais adapté un exemple qu'ils m'avaient fournis (pour une autre méthode mais il me semble que le fonctionnement est similaire) et dedans, il a des objets qui sont instanciés avec des classes qui ne sont pas décrites dans le webservice. Donc j'attends leur retour, je leur ai demandé un exemple sur cette méthode spécifiquement.

    Je vous remercie pour vos réponses
    Qui vit par le Troll périra par le Troll!

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 365
    Points : 176
    Points
    176
    Par défaut
    Bon, j'ai un peu avancé mais clairement, c'est pas propre.
    J'ai utilisé la fonction SOAPPrepare() pour générer le texte XML et l'envoyer via un HTTPEnvoie.
    Déjà, j'ai remarqué que dans l'enveloppe du xml, il me manque une déclaration xmlns. en l'ajoutant à la main, la fonction HTTPEnvoie me retourne la réponse que j'attends.

    Le soucis, c'est que le contenu de la réponse http est en xml.
    Est-ce qu'il y aurait un moyen de convertir cet xml en json pour que je puisse traiter la réponse (j'attends une liste dans la réponse).

    Je vous remercie
    Qui vit par le Troll périra par le Troll!

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2022
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Webservice DPD
    Bonjour,

    Je suis en cours de développement d'un traitement récupérer des BT DPD.

    Avez-vous solutionné votre problème ?

    De mon coté, je n'arrive pas à inclure dans le soapprepare l'identifiant et le mot de passe devant être intégré dans la balise header sur XML...

    Si quelqu'un à script qui fonctionne, je suis preneur ;-)

Discussions similaires

  1. [Web Service][SOAP] Utilisation d'un webservice
    Par hacksi dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 04/03/2008, 11h08
  2. Pb d'utilisation d'un WebServices
    Par cnguyen dans le forum InfoPath
    Réponses: 3
    Dernier message: 26/10/2007, 13h53
  3. [C#]Utilisation d'un WebService distant
    Par BGC_Laurent dans le forum Services Web
    Réponses: 7
    Dernier message: 23/11/2006, 20h38
  4. [JAX-RPC][AXIS] lequel utiliser pour des webservices ?
    Par mlequim dans le forum Services Web
    Réponses: 2
    Dernier message: 10/03/2006, 10h12

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