Utilisation SOAP login avec WinDev

Bonjour,

Je m’en retourne vers vous car malgré toutes mes recherches je n’ai rien trouvé de concluant.
Ne vous inquiétez pas, je ne vais pas vous embêter longtemps avec WinDev et je vais illustrer un maximum mes propos pour vous montrer mon soucis qui n’est pas énorme mais qui me bloque.

Ayons adopté la solution Blue Mind, nous faisons des tests pour une utilisation en interne d’une interface Blue Mind avec notre logiciel développé sur WinDev (WLangage).

Le WebService et sa descriptions sont bien importées comme il faut :

grosso modo ça correspond au $soapclient = new nusoap_client ( 'URLdemonBlueMind' ); que j’ai pu souvent voir.

Après arrive la déclaration des variables et leurs affectations :

sLogin,sPassword,sOrigin is string
letoken is accessToken 
leloginD is login 
leloginR is loginResponse 

sLogin = "admin@test.com"
sPassword = "admin"
sOrigin = "TEST"

Comme vous l’avez sans doute deviner, la variable ‘leloginD’ est de type ‘login’ avec ses trois paramètres d’entrée, ‘leloginR’ est de type ‘loginResponse’ avec sa valeur renvoyée de type ‘Return’.

Bien, maintenant là où ça coince c’est que je souhaite tout bêtement tenter un login avec mon compte actif mais cela ne passe pas… en faite rien ne se passe plus précisément.
J’ai essayé de retourner la procédure dans tous les sens mais si j’ai bien compris ça devrait suivre le schéma suivant : login → loginresponse → token

Ce qui fait que monde code ressemble à ça :

leloginD.arg0 = sLogin
leloginD.arg1 = sPassword
leloginD.arg2 = sOrigin

leloginR.return = ProxyImplService.login(leloginD)

letoken = leloginR.return

Trace(letoken)

J’ai même essayé ça :

leloginD.arg0 = sLogin
leloginD.arg1 = sPassword
leloginD.arg2 = sOrigin

letoken = ProxyImplService.login(leloginD)

Trace(letoken)

Mais au final, que ce soit ‘leloginR.return’ ou ‘letoken’, leurs valeurs restent désespérément vides.

Avez-vous des pistes à me proposer ?
Est-ce que vous avez déjà connaissance d’autres langages utilisés (autre que PHP ou Python) pour consommer des WebServices des Blue Mind ? Et si oui avez vous des exemples à me proposer (toujours pour la procédure de login) ?

Je vous remercie par avance !

PS : j’ai testé les WebService avec SOAPUi et ils tournent comme sur des roulettes

Vous trouverez un exemple de SOAP en Java ici.

Est-ce mieux en passant le login, mot de passe et origine directement en paramètre de la méthode login ? Quelque chose comme - mais je ne connais WinDev que de nom :slight_smile: :

letoken = ProxyImplService.login(sLogin, sPassword, sOrigin)

Cependant, il semble possible d’utiliser des API java depuis WinDev. Si c’est bien le cas, le plus simple serait sûrement d’utiliser directement notre SDK Java. Vous trouverez de la documentation ici.

Merci pour votre réponse rapide. :slight_smile:

Alors j’ai testé mais le message d’erreur qui m’ait retourné est que la méthode ‘login’ attend un seule paramètre du type ‘login’ (la classe).

Cependant je viens de tester d’une autre manière en utilisant une fonction propre au WLangage de Windev qui permet de lancer des procédures sur un serveur SOAP en lui envoyant un message XML. Et là j’obtiens une réponse (toujours au format XML) de la forme d’un ‘return’ de la méthode ‘loginresponse’.

Je pense que je vais m’orienter vers cette solution qui a l’air de bien fonctionner.

Mais c’est embêtant que mon premier test ne tourne pas car c’est la solution la plus rapide (en terme de temps de programmation).

En tout cas, si d’autres utilisateurs ont des propositions à faire, je reste preneur ! :smiley: