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 :

Web Services et tableau de Structure


Sujet :

WinDev

  1. #1
    Futur Membre du Club Avatar de FollowDeta
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 6
    Points
    6
    Par défaut Web Services et tableau de Structure
    Bonjour,

    J'ai donc un Web Services Coté serveur (avec connexion SQL Server) pour la demande de tâches, je souhaite donc communiquer avec le Web Services a l'aide de structures.

    Déclaration des Structures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ST_StructTache est une Structure
    	nID est un entier
    	sNom est une chaîne
    	sLIB est une chaîne
    FIN
     
    ST_StructTab_Tache est une Structure
    	Tab_Tache est un tableau dynamique de ST_StructTache
    FIN
    Requête de demande des tâche "GetTaches"
    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
     
    stStruc est un ST_StructTab_Tache
     
    gdDateDebut est une Date = PremierJourDuMois(DateDuJour())
    gdDateFin est une Date = DernierJourDuMois(DateDuJour())
     
    SI HExécuteRequête(REQ_WS_TACHE,hRequêteDéfaut,gdDateDebut, gdDateFin) ALORS
    			POUR TOUT REQ_WS_TACHE
    				st_tache est une ST_StructTache
    				st_tache.nID = REQ_WS_TACHE.ID
    				st_tache.sLIB = REQ_WS_TACHE.LIB
    				st_tache.sNom = REQ_WS_TACHE.Nom
    				Ajoute(stStruc:Tab_Tache,st_tache)
    			FIN
    FIN
     
    RENVOYER stStruc
    Coté Client, avec l'import de la description du WebServices, je retrouve bien ma fonction "GetTaches" et mes structures.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    tab_str est un ST_StructTab_Tache
    tab_str = GetTaches()
     
    POUR i = 1 A tab_str.Tab_Tache..Occurrence
    	Trace (tab_str.Tab_Tache[i].nID)
    	Trace (tab_str.Tab_Tache[i].sLIB)
    	Trace (tab_str.Tab_Tache[i].sNom)
    FIN
    Mais avec tout cela, impossible de récupérer le moindre résultat, il n'y a aucune occurrence dans le tableau, est-ce que j'ai loupé une étape, ou plusieurs ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 284
    Points : 12 983
    Points
    12 983
    Par défaut
    Bonjour,
    Je dirai qu'il manque une gestion des erreurs.
    Peut-être qu'il y a un problème de connexion à la base, ou que la requête ne renvoie rien.
    Mais tel qu'est fait le code, impossible de le savoir.

    Tu peux par exemple ajouter un système de trace dans un fichier de log, pour savoir ce qu'il se passe côté WebService.
    De notre côté (en plus des logs), toutes les réponses de WebService incluent uns structure rapport, avec 3 données:
    1. Un booléen qui indique si tout c'est bien passé
    2. Un message (client introuvable, message d'erreur de la base de données...)
    3. Un "niveau d'erreur (info, avertissement, erreur)

    Ainsi en cas de problème dans le Webservice l'application utilisatrice peut "agir" en conséquence. Et c'est aussi plus simple en développement pour débugger

    Tatayo.

  3. #3
    Futur Membre du Club Avatar de FollowDeta
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Merci de votre réponse !

    Après avoir observé ce qui est envoyé par le WebServices, je n'identifie pas le problème, résultat de la requête OK, mais toujours rien dans le tableau de structures !

    Pour pouvoir aller un peu plus loin, j'ai ajouter ceci après la requête de demande des tâches, ce qui me permet de tester un autre format (ici JSON).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    bufRésultat est un Buffer
    Sérialise(stStruc,bufRésultat,psdJSON)
    RENVOYER bufRésultat

    Coté Client, Je déclare un nouvelle fois les structures et je désérialise :
    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
     
     
    lST_StructTache est une Structure
    	nID est un entier
    	sNom est une chaîne
    	sLIB est une chaîne
    FIN
     
    lST_StructTab_Tache est une Structure
    	Tab_Tache est un tableau dynamique de lST_StructTache
    FIN
     
    stTab_str est un lST_StructTab_Tache
    bufRésultat est un Buffer
     
    bufRésultat = GetTachesJSON()
    Désérialise(stTab_str,bufRésultat,psdJSON)
     
    //Traitement Occurences stTab_str ...
    Et avec ceci, cela fonctionne, je récupère bien mes données de mon tableau.
    Mais le souci c'est qu'il faut re-déclarer les structures un nouvelle fois côté client...

Discussions similaires

  1. Réponses: 10
    Dernier message: 11/06/2012, 01h22
  2. Réponses: 0
    Dernier message: 23/06/2011, 20h27
  3. Réponses: 8
    Dernier message: 05/05/2011, 14h44
  4. retourner tableau de string avec web service SOAP
    Par xx_FiFty_xx dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/06/2008, 11h13
  5. [Tableaux] tableau en entrée d'un web service
    Par virginied dans le forum Langage
    Réponses: 1
    Dernier message: 19/09/2006, 18h47

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