|
FOROS PROFESIONALES WINDEV, WEBDEV y WINDEV Mobile |
| | | | | |
| Problème de limitation de résultats dans une api |
| Iniciado por Paul SOULAT, 18,abr. 2020 12:03 - 7 respuestas |
| |
| | | |
|
| |
Miembro registrado 49 mensajes |
|
| Publicado el 18,abril 2020 - 12:03 |
Bonjour je dois charger une API et cette dernière limite les résultats à 500 pourriez vous m'indiquer comment faire pour charger toutes les données 500 par 500 merci
le lien vers l'explication de l'API ci besoin https://developers.pipedrive.com/docs/api/v1/…
merci pour votre aide |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 19,abril 2020 - 10:44 |
Bonjour, Peut tu résumer ce que fait cette API. Ce que tu cherches et comment tu effectues ta requête ? A priori, il faudrait affiner la recherche, il y aura moins de résultats
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
| Publicado el 19,abril 2020 - 23:01 |
Bonsoir
Merci pour votre réponse, l'api retourne une liste de client (organisation) issu d'un outils de crm le fichier que je tente de récupéré fait plus de 90000 lignes et l'api limite les résultats à 500 max du coup je ne sais pas trop comment récupérer la liste complète là j'ai fait une boucle qui s'incrémente de 500 par exemple :
nNum est un entier = 0 nNumLigne est un entier = 0 nId est un entier
TANTQUE nNum <> "100000" Requette est un restRequête Reponse est un restRéponse ReponseVariant est un Variant Requette.URL = gsCompte+"/v1/organizations?start="+nNum+"&limit=500&api_token="+gsToken Reponse = RESTEnvoie(Requette) ReponseVariant = JSONVersVariant(Reponse.Contenu) SI nId <> "" ALORS POUR TOUT Organisation de ReponseVariant.data nNumLigne++ Pipe.Num_Ligne = nNumLigne Pipe.Num_Pipe = Organisation.id SELON Organisation.e302b2219dce9b4964aadd1899aa87638e38688e CAS 0 Pipe.Status = "VIDE" CAS 1 Pipe.Status = "PROSPECT" CAS 2 Pipe.Status = "CLIENT" CAS 3 Pipe.Status = "CONCURRENT" CAS 4 Pipe.Status = "APPORTEUR" CAS 9 Pipe.Status = "SOCIETE" CAS 71 Pipe.Status = "ANCIEN CLIENT" AUTRE CAS FIN Pipe.Code_Client = Organisation.a0ae9d0eaa0f23375c9a1eb3f5b0bd95d2a14b1f Pipe.Nom_Client = Organisation.name Pipe.Date_Dernier = Organisation.last_activity_date HAjoute(Pipe) HRAZ(Pipe) nId = Organisation.id FIN nNum+=500 Multitâche(-1) FEN_Demarrage.SAI_Depart = nNum FEN_Demarrage.SAI_Fin = nId FEN_Demarrage.LIB_Chargement = "Chargement du fichier PIPE en cours"+RC+nNum+" Fichiers chargés" SINON FIN FIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 49 mensajes |
|
| Publicado el 20,abril 2020 - 08:03 |
Bonjour, merci de votre réponse
L'API me fournie des élément de CRM je travail sur le fichier client classé par status (client, ancien client, prospection, vide) ce fichier représente un peu plus de 95000 lignes mais l'api retourne au maximum 500 résultats en indiquant le num de départ
pour faire la remonté j'ai créé une boucle mais comme je ne connais pas le nombre d'élément je ne sais pas quand m’arrêter
nNum est un entier = 0 nNumLigne est un entier = 0 nId est un entier
TANTQUE nNum <> "100000" Requette est un restRequête Reponse est un restRéponse ReponseVariant est un Variant Requette.URL = gsCompte+"/v1/organizations?start="+nNum+"&limit=500&api_token="+gsToken Reponse = RESTEnvoie(Requette) ReponseVariant = JSONVersVariant(Reponse.Contenu) SI nId <> "" ALORS POUR TOUT Organisation de ReponseVariant.data nNumLigne++ Pipe.Num_Ligne = nNumLigne Pipe.Num_Pipe = Organisation.id SELON Organisation.e302b2219dce9b4964aadd1899aa87638e38688e CAS 0 Pipe.Status = "VIDE" CAS 1 Pipe.Status = "PROSPECT" CAS 2 Pipe.Status = "CLIENT" CAS 3 Pipe.Status = "CONCURRENT" CAS 4 Pipe.Status = "APPORTEUR" CAS 9 Pipe.Status = "SOCIETE" CAS 71 Pipe.Status = "ANCIEN CLIENT" AUTRE CAS FIN Pipe.Code_Client = Organisation.a0ae9d0eaa0f23375c9a1eb3f5b0bd95d2a14b1f Pipe.Nom_Client = Organisation.name Pipe.Date_Dernier = Organisation.last_activity_date HAjoute(Pipe) HRAZ(Pipe) nId = Organisation.id FIN nNum+=500 Multitâche(-1) FEN_Demarrage.SAI_Depart = nNum FEN_Demarrage.SAI_Fin = nId FEN_Demarrage.LIB_Chargement = "Chargement du fichier PIPE en cours"+RC+nNum+" Fichiers chargés" SINON FIN FIN
Info("Traitement terminé") |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 499 mensajes |
|
| Publicado el 20,abril 2020 - 09:39 |
Bonjour,
D'après la documentation de votre API, sur cette URL : https://pipedrive.readme.io/docs/core-api-concepts-responses
Vous avez, en plus du champ "data", un champ "additional_data", et dans celui-ci, un champ "pagination". Qui contient un booléen "more_items_in_collection".
A priori il suffira de tester à la fin de votre boucle si ce booléen est à faux, dans ce cas cela veut dire qu'il n'y a pas d'autres items à récupérer, et vous pouvez donc sortir de la boucle à ce moment-là. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 49 mensajes |
|
| Publicado el 20,abril 2020 - 13:01 |
| Merci Benjamin je vais regarder ca j'avais pas vu en effet |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 49 mensajes |
|
| Publicado el 21,abril 2020 - 14:45 |
Bonjour Benjamin,
j'ai regardé la doc je récupère bien les infos voulus par contre comment récupérer ses info parce que quoi que je fasse cela me retourne 0
Requette_TestPage est un restRequête Reponse_TestPage est un restRéponse ReponseVariant_TestPage est un Variant
Requette_TestPage.URL = gsCompte+"/v1/organizations?start="+nNum+"&limit=500&api_token="+gsToken
Reponse_TestPage = RESTEnvoie(Requette_TestPage)
ReponseVariant_TestPage = JSONVersVariant(Reponse_TestPage.Contenu)
POUR TOUT test de ReponseVariant_TestPage.additional_data Trace("Start : " + test.pagination.start) Trace("Limite : " + test.pagination.limit) Trace("More : " + test.pagination.more_items_in_collection) Trace("Next : " + test.pagination.next_start) FIN
j'ai essayé avec :
ReponseVariant_TestPage = JSONVersVariant(Reponse_TestPage.Contenu)
POUR TOUT test DE ReponseVariant_TestPage.data Trace("Start : " + test.additional_data.pagination.start) Trace("Limite : " + test.additional_data.pagination.limit) Trace("More : " + test.additional_data.pagination.more_items_in_collection) Trace("Next : " + test.additional_data.pagination.next_start) FIN
et ca
ReponseVariant_TestPage = JSONVersVariant(Reponse_TestPage.Contenu)
POUR TOUT test DE ReponseVariant_TestPage.data.additional_data Trace("Start : " + test.pagination.start) Trace("Limite : " + test.pagination.limit) Trace("More : " + test.pagination.more_items_in_collection) Trace("Next : " + test.pagination.next_start) FIN
bref je ne parviens pas à récupérer cette info pourtant visible lors d'un point d'arret
Merci pour votre aide |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 49 mensajes |
|
| Publicado el 21,abril 2020 - 15:02 |
Pardon pour le dérangement j'ai trouvé il fallait que je mette le tout or de la boucle POUR TOUT ...
Trace("Start : " + ReponseVariant_TestPage.additional_data.pagination.start) Trace("Limite : " + ReponseVariant_TestPage.additional_data.pagination.limit) Trace("More : " + ReponseVariant_TestPage.additional_data.pagination.more_items_in_collection) Trace("Next : " + ReponseVariant_TestPage.additional_data.pagination.next_start)
Encore merci |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|