PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Problème procédure
Problème procédure
Débuté par Ian, 18 mai 2017 12:19 - 1 réponse
Membre enregistré
106 messages
Popularité : +3 (3 votes)
Posté le 18 mai 2017 - 12:19
Bonjour à Tous,

ça fait 1 semaine que je bloque sur un problème.

J'ai un webservice qui sert de passerelles entre mon apk mobile et le logiciel de ma boite.

Dans le principe, mon apk peut envoyer au webservice de l'alpha, du numérique et des photos (champ mémo).
Ensuite le webservice est interrogé automatiquement par le logiciel de ma boite (à condition qu'il soit en cours d’exécution) et lui renvoie donc les retours des mobiles clients.

Dans l'absolue tout fonctionne, sauf que je suis face un cas spéciale. Mon client n'a pas interrogé le webservice pendant 2 jours. Ces utilisateurs ont donc amasser pas loin de 218 photos, de taille différente mais au même format (.jpg).

voici ma procédure :

Mon_Retour est un Mes_Retours //structure

HLitRecherche(Réponses,DATEHEUREMODIF,D_Dateheure)
TANTQUE PAS HEnDehors(Réponses) ET Réponses.DATEHEUREMODIF >= D_Dateheure

LigRetour = TableauAjoute(Mon_Retour.Tab_Reponses)

Mon_Retour.Tab_Reponses[LigRetour].Id_Reponse = Réponses.IDREPONSE
Mon_Retour.Tab_Reponses[LigRetour].IdWebService_Reponse = Réponses.IDWEBSERVICE
Mon_Retour.Tab_Reponses[LigRetour].Libelle_Reponse = Réponses.LIBELLEREPONSE
Mon_Retour.Tab_Reponses[LigRetour].Documents_Reponse = Réponses.DOCUMENTS
Mon_Retour.Tab_Reponses[LigRetour].FormatDocument_Reponse = Réponses.FORMATDOCUMENT
Mon_Retour.Tab_Reponses[LigRetour].AutresDocuments_Reponse = Réponses.AUTRESDOCUMENTS
Mon_Retour.Tab_Reponses[LigRetour].DateHeureModif_Reponse = Réponses.DATEHEUREMODIF
Mon_Retour.Tab_Reponses[LigRetour].DateHeureEnvoi_Reponse = Réponses.DATEHEUREENVOI
Mon_Retour.Tab_Reponses[LigRetour].DateHeure_Reponse = Réponses.DATEHEUREREPONSE
Mon_Retour.Tab_Reponses[LigRetour].TypeQuestion_Reponse = Réponses.TYPEQUESTION


HLitSuivant(Réponses,DATEHEUREMODIF)
FIN

// Sérialise R_Mes_Nouveaux_Retours_Reponse
R_Mes_Nouveaux_Retours_Reponse est un Buffer

QUAND EXCEPTIONEXCEPTION DANS
Sérialise(Mon_Retour,R_Mes_Nouveaux_Retours_Reponse,psdXML)
FAIRE
Erreur(ExceptionInfo())
FIN

RENVOYER R_Mes_Nouveaux_Retours_Reponse



Lorsque je veux récupérer les 15 premières photos, j'ai pas de soucis

Quand je veux récupérer les 25 premières photos, le Sérialise s'effectue bien mais j'ai des lenteurs.

Quand je veux récupérer les 50 premières photos, je rentre dans Erreur(ExceptionInfo()) ...

Quand je veux récupérer les 218 photos, j'ai un message d'erreur Windows : wdtst.exe a cessé de fonctionner sans passer dans Erreur(ExceptionInfo()) = Format de sérialisation incorrect ...

Procédure trop lourde ?

Est-ce qu'il est possible que le XLM généré soit tronqué ?

Avez-vous une solution svp ?

Cordialement

--
- ian -
Posté le 18 mai 2017 - 14:41
Bonjour Ian,

la taille max possible d'un transfert est déterminé par différentes
valeurs au niveau du serveur web (time out, time out cgi, taille
transfert max) -ET- au niveau du protocole SOAP lui même.

C'est une des raisons pour laquelle, ans wxreplication, j'ai choisi de
faire du REST en mode POST, ou je n'avais pas cette dernière limitation.

Mais même dan ce cas, mon système travaille toujours par requêtes
successives d'une taille limitée jusqu'à ce qu'il n'y ait plus de
données à rapatrier, de manière à pouvoir interrompre les traitements en
cours même s'il y a des GO de données à lire pour les reprendre plus tard.

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com

Le 5/18/2017 à 4:19 AM, Ian a écrit :
Bonjour à Tous,

ça fait 1 semaine que je bloque sur un problème.

J'ai un webservice qui sert de passerelles entre mon apk mobile et le
logiciel de ma boite.

Dans le principe, mon apk peut envoyer au webservice de l'alpha, du
numérique et des photos (champ mémo).
Ensuite le webservice est interrogé automatiquement par le logiciel de
ma boite (à condition qu'il soit en cours d’exécution) et lui renvoie
donc les retours des mobiles clients.

Dans l'absolue tout fonctionne, sauf que je suis face un cas spéciale.
Mon client n'a pas interrogé le webservice pendant 2 jours. Ces
utilisateurs ont donc amasser pas loin de 218 photos, de taille
différente mais au même format (.jpg).

voici ma procédure :

Mon_Retour est un Mes_Retours //structure

HLitRecherche(Réponses,DATEHEUREMODIF,D_Dateheure)
TANTQUE PAS HEnDehors(Réponses) ET Réponses.DATEHEUREMODIF >=
D_Dateheure

LigRetour = TableauAjoute(Mon_Retour.Tab_Reponses)

Mon_Retour.Tab_Reponses[LigRetour].Id_Reponse =
Réponses.IDREPONSE
Mon_Retour.Tab_Reponses[LigRetour].IdWebService_Reponse =
Réponses.IDWEBSERVICE
Mon_Retour.Tab_Reponses[LigRetour].Libelle_Reponse =
Réponses.LIBELLEREPONSE
Mon_Retour.Tab_Reponses[LigRetour].Documents_Reponse =
Réponses.DOCUMENTS
Mon_Retour.Tab_Reponses[LigRetour].FormatDocument_Reponse =
Réponses.FORMATDOCUMENT
Mon_Retour.Tab_Reponses[LigRetour].AutresDocuments_Reponse =
Réponses.AUTRESDOCUMENTS
Mon_Retour.Tab_Reponses[LigRetour].DateHeureModif_Reponse =
Réponses.DATEHEUREMODIF
Mon_Retour.Tab_Reponses[LigRetour].DateHeureEnvoi_Reponse =
Réponses.DATEHEUREENVOI
Mon_Retour.Tab_Reponses[LigRetour].DateHeure_Reponse =
Réponses.DATEHEUREREPONSE
Mon_Retour.Tab_Reponses[LigRetour].TypeQuestion_Reponse =
Réponses.TYPEQUESTION


HLitSuivant(Réponses,DATEHEUREMODIF)
FIN

// Sérialise R_Mes_Nouveaux_Retours_Reponse
R_Mes_Nouveaux_Retours_Reponse est un Buffer

QUAND EXCEPTION DANS
Sérialise(Mon_Retour,R_Mes_Nouveaux_Retours_Reponse,psdXML)
FAIRE
Erreur(ExceptionInfo())
FIN

RENVOYER R_Mes_Nouveaux_Retours_Reponse



Lorsque je veux récupérer les 15 premières photos, j'ai pas de soucis

Quand je veux récupérer les 25 premières photos, le Sérialise s'effectue
bien mais j'ai des lenteurs.

Quand je veux récupérer les 50 premières photos, je rentre dans
Erreur(ExceptionInfo()) ...

Quand je veux récupérer les 218 photos, j'ai un message d'erreur
Windows : wdtst.exe a cessé de fonctionner sans passer dans
Erreur(ExceptionInfo()) = Format de sérialisation incorrect ...

Procédure trop lourde ?

Est-ce qu'il est possible que le XLM généré soit tronqué ?

Avez-vous une solution svp ?

Cordialement

--
- ian -