Je rencontre actuellement un problème d’export de données. Que ce soit sur n’importe quel module développé en interne ou le module démo, ainsi que sur plusieurs instances différentes (production ou développement), il m’est impossible d’exporter des données autrement qu’en CSV. Dans plusieurs métiers, il est nécessaire de pouvoir procéder à des exports en Excel, en ZIP ou en PDF.
Actuellement, lorsque nous tentons un export, le processus tourne en boucle jusqu’à ce que nous annulions celui-ci.
Après analyse, il y a une différence entre la 5.2 et la 5.3 au niveau des exports.
En 5.3 un code HTTP 202 est renvoyé à la UI tant que l’export n’est pas complété. Est-ce qu’il y a quelque chose au niveau du votre paramétrage de serveur qui bloque certains codes HTTP ?
Alistair est actuellement en congé, comment peut on vous aider ? Sans aucun accès ni logs pour reproduire le pb, on peut juste faire des hypothèses.
Si je relis votre ticket, sur certains environnements seul l’export CSV fonctionne, mais pas les exports Excel, ZIP et PDF. Votre ticket ne contient aucune log client/serveur. Il faut regarder chaque étape :
Génération de l’export :
La différence est que le flux CSV est “textuel” et est envoyé directement au navigateur (HTTP response), l’upload se fait directement. Les autres formats binaires sont nécessairement traités sur le serveur dans les répertoires temporaires de la webapp, Simplicité doit extraire les données dans des fichier/buffers jusqu’au ZIP final (xlsx étant un zip, on ne peut pas zipper au fil d’eau dans la réponse, il faut un fichier complet avant de le zipper).
Il faut vérifier les droits d’écriture et les tailles disponibles des répertoires de la webapp ROOT/WEB-INF. Il devrait y avoir des traces d’erreur d’écriture I/O dans les logs de Simplicité ou Tomcat/catalina.
Il peut aussi y avoir un problème de librairies POI/ZIP ou autre, on verrait certainement également des exceptions Java.
Polling navigateur pour attendre le fichier
Le navigateur interroge périodiquement le serveur pour savoir si le fichier est prêt, pour ne pas bloquer un appel xhr qui finirait en timeout sur un gros fichier. Le serveur répond HTTP 202 pour signaler que c’est toujours en cours. L’utilisateur a encore la possibilité d’annuler l’export via le toast affiché.
Une fois le fichier d’export généré (ou zippé), l’appel retourne un HTTP 200 avec le nom du fichier à uploader et le navigateur lance le téléchargement.
Il faut regarder l’ensemble des requêtes http/xhr depuis votre navigateur (débuggeur chrome F12 / onglet Network) lorsque vous reproduisez le problème.
On pourra voir si le client reçoit en boucle des 202 ou autre chose.
Peut on avoir le CR de cette réunion, de quels points analysés parle-t-on ?
Alistair rentre mardi d’après son agenda. Vous pouvez envoyer un email à support@simplicite.fr, pour essayer de regarder d’ici là, sinon nous verrons avec lui à son retour.
Il me paraitrait plus judicieux de comparer les installations d’une instance qui fonctionne avec une autre qui a des soucis. Même infra/VM, même sizing, même config/version… ?
Je ne retrouve pas le CR de la réunion. Nous en avons parlé brièvement lors d’une autre réunion. Cependant, je sais que nous avons vérifié les requêtes http/xhr via l’onglet Network et rien ne semblait étrange.
Le problème est présent à la fois sur l’instance de Dev et l’instance de Prod. Nous ne disposons pas d’une instance vierge de ce problème pour comparer.