1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WD Consomer un web service soap au lieu d'importer

Discussion dans 'Résolution problème & conseils' créé par saad27, Juil 10, 2018.

  1. saad27

    saad27 Active Member
    MEMBRE WX

    Inscrit:
    Mar 24, 2018
    Messages:
    154
    J'aime reçus:
    66
    Salut les TEAM Fekwx,
    Y a-t-il un moyen de consomer un web service soap au lieu d'importer le service web sur windev?
    la raison me le demande, car le format /Struture ne peut pas être traduit par windev par import.

    Merci
    Saad
     
    Tags:
  2. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    Normalement, le soap est basé sur XML.
    donc le résultat d'une requête au web service est un texte XML.
    Donc au pire tu doit pouvoir le gérer avec des extractions de chaînes et des httprequette.
     
    saad27 apprécie ceci.
  3. saad27

    saad27 Active Member
    MEMBRE WX

    Inscrit:
    Mar 24, 2018
    Messages:
    154
    J'aime reçus:
    66

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Normalement, le soap est basé sur XML.
    donc le résultat d'une requête au web service est un texte XML.
    Donc au pire tu doit pouvoir le gérer avec des extractions de chaînes et des httprequette.
    Cliquez pour agrandir...
    si je comprends bien, je peux utiliser la même syntaxe de REST pour le soap?
    tu me donner un exemple d'un code pour le soap
    Merci
    Saad
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    tu as écrit que ton soap n'était pas accepté par windev.
    il est donc nécessaire d'analyser celui-ci pour adapter le code.
    difficile de fournir un code sur du vide.
     
  • saad27

    saad27 Active Member
    MEMBRE WX

    Inscrit:
    Mar 24, 2018
    Messages:
    154
    J'aime reçus:
    66
    par exemple si tu peut simplement me montrer un GET basic pour soap,car je n'ai jamais essayé ça.
    Merci
    Saad
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    httprequette avec URL
    httpresultat
    tu enregistre dans fichier UTF-8
    ensuite tu analyse
    impossible de te dire plus.
     
  • Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154
    J'ai travaillé récemment sur un Webservice qui ne fournissait pas son WSDL
    J'ai donc créé des classes afin de gérer le webservice.
    Il faut analyser le contenu attendu par le webervice, on retrouve souvent des redondances (Entêtes contant des infos identification par exemple), avec ceci tu créé la classe de base dont les autres hériterons.
    Ensuite pour chaque fonction tu webservice, tu créés une classe qui hérite de la classe de base.

    Tu construit la classe et ses membres en fonction de ce qui est attendu par le webservice et tu créer une methode du genre "SendData", laquelle va s'occuper de sérialiser en XML ton objet et l'envoyer au webservice via : SoapExecuteXML
    De meme, pour chaque réponse du webservice tu créé la classe associée afin de récupérer le resultat

    Exemple :

    CEnvoiDonnees est un C_WebServiceTest
    CEnvoiDonnees.m_sUneChaine = "test"
    CEnvoiDonnees.m_sUneChaine2 = "test 2"
    // etc.. tu défini les valeur attendues par le webservice
    CReponse est un C_WebServiceTestReponse
    CReponse = CEnvoiDonnees.SendData()


    // Code de C_WebServiceTest.SendData()
    reponse est un C_WebServiceTestReponse
    bufData est un buffer
    Sérialise(objet,bufData,psdXMLAgrégé) //Sérialise l'objet en cours au format XML dans le buffer bufData
    SI SOAPExécuteXML(sServiceURL,bufSerialise) ALORS
    bufResultatRequete est un buffer = SOAPDonneRésultat(SOAPRésultatXML)
    Désérialise(reponse,bufResultatRequete,psdXMLAgrégé)
    RENVOYER Reponse
    FIN

    Ce n'est qu'un tout petit exemple mais ca éxplique comment j'ai procédé. Ca foncitonne plutot bien :)
     
    saad27 apprécie ceci.
  • saad27

    saad27 Active Member
    MEMBRE WX

    Inscrit:
    Mar 24, 2018
    Messages:
    154
    J'aime reçus:
    66

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Merci pour cet exemple, c'est ce que je cherchais.

    Cela te dérange de partager un projet come exemple?

    Merci
    Saad
     
  • Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Je vais voir ce que je peux faire, je vais devoir modifier avant de partager le composant mais c'est possible oui !

    Edit : Bon ca va etre compliqué de partager ce composant en particulier pour des raisons contractuelles.. et y'aurait trop de taf pour "l'anonymiser"

    Mais n'hésite pas a demander de l'aide.
     
    #9 Ezekiel056, Juil 19, 2018
    Dernière édition: Juil 19, 2018
    saad27 et joker aiment ça.
  • saad27

    saad27 Active Member
    MEMBRE WX

    Inscrit:
    Mar 24, 2018
    Messages:
    154
    J'aime reçus:
    66

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Merci..

    J'ai joint le xml du Web service en parcourant sur le sur le navigateur.
    retire le .txt a la fin sur le fichier pour ouvrir avec ton navigateur
    Merci
    SAAD
     

    Fichiers attachés:

  • Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154
    Alors le document la c'est un XSD en fait, c'est le schéma de validation du format XML attendu par le web service (XMLDocumentValide en windev permet cela) dans lequel on retrouve tous les elements (stucutures) utilisables et reconnu par le webservice.
    C'est pratique pour créer les classe car ça permet de connaitre le type de chaque membre et leur taille max par exemple.

    Exemple, dans ton XSD on trouve :

    <xsd:element name="CalculateTransactionTotals">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element minOccurs="0" maxOccurs="1" name="vendorCode" type="xsd:string"/>
    <xsd:element minOccurs="1" maxOccurs="1" name="ppMenuItems" type="xsd1:String&amp;"/>
    <xsd:element minOccurs="1" maxOccurs="1" name="ppComboMeals" type="xsd1:String&amp;"/>
    <xsd:element minOccurs="1" maxOccurs="1" name="pSvcCharge" type="xsd1:String&amp;"/>
    <xsd:element minOccurs="1" maxOccurs="1" name="pSubtotalDiscount" type="xsd1:String&amp;"/>
    <xsd:element minOccurs="1" maxOccurs="1" name="revenueCenter" type="xsd:int"/>
    <xsd:element minOccurs="1" maxOccurs="1" name="orderType" type="xsd:int"/>
    <xsd:element minOccurs="1" maxOccurs="1" name="employeeNumber" type="xsd:int"/>
    <xsd:element minOccurs="1" maxOccurs="1" name="pTotalsResponse" type="xsd1:String&amp;"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>

    On peut donc imaginer l'objet suivant :
    CalculateTransactionTotals est un CCalculateTransactionTotals
    vendorCode est une chaine
    ppMenuItems est une chaine
    ppComboMeals est une chaine
    pSvcCharge est une chaine
    pSubtotalDiscount est une chaine
    revenueCenter est un entier
    orderType est un entier
    pTotalsResponse est une chaine
    FIN


    IL faut imaginer chaque noeud comme un objet (ou structure .. a voir en fonction) en fait.
    Ensuite pour construire tes requêtes, tu créé des objets en fonctions des besoins


    Par contre avec QUE ce document tu ne pourra pas aller bien loin.
    Tu n'a pas une doc fournie ? Avec des samples de requetes et reponses ?

    Il te faudrait aussi un soft du genre SOAP UI :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Pour tester tes requetes
     
    saad27 apprécie ceci.
  • saad27

    saad27 Active Member
    MEMBRE WX

    Inscrit:
    Mar 24, 2018
    Messages:
    154
    J'aime reçus:
    66

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    j'ai aucun autre information, apart ce lien est le XSD.J'ai essayé sur SOAP Ui mais sa ne fonctionne pas,erreur de syntaxe.
    J'attends un exemple de ta part qui puisse m'aider à construire la requête
    Merci,
    Saad
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    est il possible d'avoir l'URL ou mieux un exemple d'URL pour qu'on puisse analyser ce web service ?
     
  • Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    j'ai aucun autre information, apart ce lien est le XSD.J'ai essayé sur SOAP Ui mais sa ne fonctionne pas,erreur de syntaxe.
    J'attends un exemple de ta part qui puisse m'aider à construire la requête
    Merci,
    Saad
    Cliquez pour agrandir...
    La question est maintenant, quelle requête tu cherche a faire ? C'est quoi le but du webservice ?
    Il faut un peu plus de détails ;)
     
  • Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    D'apres le Xsd on peut voir une URL..
    Essaye d'importer ce lien dans windev :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Moi je n'y ai pas accès mais bon peut être il y a un filtrage IP..
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    D'apres le Xsd on peut voir une URL..
    Essaye d'importer ce lien dans windev :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Moi je n'y ai pas accès mais bon peut être il y a un filtrage IP..
    Cliquez pour agrandir...
    j'ai aussi vu des URL avec tempori.org mais j'ai pas non plus accès.
    mais je pense que ton lien

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    doit être le bon wsdl pour windev.
     
  • Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Voila la doc dont tu as besoin (enfin je crois) :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
  • Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    j'ai aussi vu des URL avec tempori.org mais j'ai pas non plus accès.
    mais je pense que ton lien

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    doit être le bon wsdl pour windev.
    Cliquez pour agrandir...
    D'après leur doc, il suffit meme de mettre

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    pour obtenir le WSDL.

    Maintenant comme je l'ai dit, il ne serait pas étonnant qu'il y ai un filtrage IP ou autre (c'est généralement le cas) donc il faut d'abord se faire autoriser auprès de l'administrateur du serveur.. (Et avoir une ip fixe !)
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Voila la doc dont tu as besoin (enfin je crois) :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Cliquez pour agrandir...
    je sens la superbe piste, je l'ai télécharger.
    félicitation.
     
    Ezekiel056 apprécie ceci.
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , as toi de jouer, fais nous un retour svp.
     
  • Partager cette page

    Chargement...