PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Récuperer tous les enregistrements via WEBSERVICES
Récuperer tous les enregistrements via WEBSERVICES
Iniciado por Jack, 08,mar. 2019 07:23 - No hay respuesta
Miembro registrado
55 mensajes
Publicado el 08,marzo 2019 - 07:23
Bonjour
Je coince sur la récupération de tous les enregistrements via un webservices.
J'ai un projet pour remplacer un broker MQTT par un webservice, le broket n'étant pas autorisé sur le réseau du client.

J'ai donc crée (test pour le moment) un webservices en Windev23, e il est publié sur un serveur DINAO. Aucun soucis pour faire du httpppost. Le boitier IoT envoi bien ses données toutes les 30 secondes.
Par contre, lorsque je veux récupérer les données en httpgest via Windev24, j'obtiens X fois (x= nombre de record) le même enregistrement, il faut que je relance la procédure de lecture pour obtenir X fois le record suivant…
J'espère avoir été clair !
Voici mon code Windev23 (via l'assistant car les process POST et GET sont ultra basiques pas de traitement) et la méthode GET en WinDev24 pour récupérer les data
Encore merci
Cdlt
Cyril

//Déclaration
MDataTrucks est une Classe <MAPPING=DataTrucks>

// Le code se trouvant entre <MAPPING> et <FIN> est généré automatiquement.
// Il sera effacé et recréé entièrement à chaque génération depuis l'analyse.
<MAPPING>
m_nIDDataTrucks est un entier sur 8 octets <MAPPING=IDDataTrucks, clé unique , Sérialise=Faux>
m_sImmat est une chaîne ANSI <MAPPING=Immat , Sérialise="Immat">
m_rLatitude est un réel sur 4 octets <MAPPING=Latitude , Sérialise="Latitude">
m_rLongitude est un réel sur 4 octets <MAPPING=Longitude , Sérialise="Longitude">
m_rVitesse est un réel sur 4 octets <MAPPING=vitesse , Sérialise="vitesse">
m_dDateRecord est une Date <MAPPING=dateRecord , Sérialise="dateRecord">
m_hHeureRecord est une Heure <MAPPING=HeureRecord , Sérialise="HeureRecord">
<FIN>

FIN


// La procédure du Web service pour lire tous les record
Procedure PUBLIQUE GLOBALE LectureTous() : chaîne ANSI

// Vérification de l'authentification.
SI Authentification() = Faux ALORS
// Echec de l'authentification.
// Le code a rencontré en une erreur. Le code de traitement des erreurs fait un appel de WebserviceEcritCodeHTTP : le serveur d'application WEBDEV va ignorer la valeur de retour de la procédure.
RENVOYER ""
FIN

tabDataTrucks est un tableau de MDataTrucks
POUR TOUT MonFichierMappé
clDataTrucks est un MDataTrucks
clDataTrucks.FichierVersMemoire()

tabDataTrucks.Ajoute(clDataTrucks)
FIN

sContenuEnregistrementEnJSON est une chaîne ANSI
Sérialise(tabDataTrucks, sContenuEnregistrementEnJSON, psdJSON)

// On retourne directement une chaîne que le serveur d'application va considérer comme la réponse.
RENVOYER sContenuEnregistrementEnJSON


// Code de la fenêtre de test
DataGPS est une structure
nIDGPS est un entier sur 8 octets
immat est une chaîne
latitude est un réel
longitude est un réel
vitesse est un réel
dateGPS est une Date
heureGPS est une Heure
FIN
tabListeTrajet est un tableau de DataGPS


//Code du bouton de test pour lire les data
DemandeListeTrajet est un restRequête
RecupListeTrajet est un restRéponse


DemandeListeTrajet.URL="www.URLSITE.COM/TrackingsTruckTous"
DemandeListeTrajet.Méthode=httpGet
DemandeListeTrajet.Utilisateur="XXXXX"
DemandeListeTrajet.MotDePasse="YYYY"

RecupListeTrajet=RESTEnvoie(DemandeListeTrajet)
Désérialise(tabListeTrajet,RecupListeTrajet.Contenu,psdJSON)
TableAffiche(TABLE_TabListeTrajet,taInit)