Free Trial

Forum

Trouvez des réponses, posez des questions, et partagez votre expertise d’Alteryx.
TIPS de la semaine

Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !

Voir l'index
RÉSOLU

Tester à la réception un fichier provenant du web

psyrio
Comète

Bonjour, 

 

Pour certains besoins je vais récupérer des fichiers (txt, csv,xls,xlsx) présents sur certains site WEB (INSEE, Gouv.fr,...) à travers le Download Tool et les enregistre pour un traitement ultérieur.

 

Cependant, il arrive que les fichiers téléchargés soient incorrects (Format téléchargé incorrect, vide...) dû à des mises à jour par ces sites par exemple.

N'ayant aucun moyen de savoir quand les fichiers sont disponibles ou non, j'ai essayé de trouver un moyen dans ALTERYX pour tester les fichiers téléchargées et si possible ne pas les enregistrer (et donc ne pas écraser les fichiers de la veille) s'il y a un soucis.

 

Malheureusement je ne trouve aucune option ou aucune astuce à ce jour sur ce forum et donc je voulais savoir si d'autres personnes ont ce genre de problématique et qu'elles solutions elles ont mise en place.

 

Merci d'avance de votre aide.

 

Cordialement,

Psyrio 

23 RÉPONSES 23
StephaneP
Alteryx
Alteryx

Hello @psyrio ,

 

Je pense que tu n'es pas obligé de faire 2 workflows distincts. Il suffit d'en faire un qui marche dans les 2 cas: que le fichier download soit OK ou non.

Exemple:

StephaneP_1-1603906417222.png

 

J'ai simulé ici ton cas avec le fichier du haut qui représente le résultat du Download et le fichier du bas qui représente le fichier .yxdb ou tu stockes tes résultats OK des précédents téléchargement.

J'ai fait 2 cas. Celui du haut où le dowload fonctionne et nous ramène 1 ligne de plus qu'avant. (la ligne 4) comparé à ce qu'on a déjà ( 3 lignes).

Via les Join/ Union on ressort à la fin bien les 4 lignes.

Dans le 2ème cas, le même jeu de Join/ Union nous ramène bien les 3 lignes de l'historique même si la source est vide.

 

Je pense que si sur la branche du haut tu places le résultat de ton download (+ ton test d'erreur) cela devrait être OK.

 

A noter que pour que cette technique fonctionne il faut que tu ai un ID unique dans les tables que tu télécharges.

 

J'espère que cela t'aide.

 

 

Stéphane Portier
Sales Engineer
Alteryx
psyrio
Comète

Re bonjour à tous,

 

J'ai eu de nouveau le problème qui s'est produit malgré le répertoire temporaire. Voici deux exemples de fichiers téléchargés par l'outil Download Tools qui ont bien une taille de 8 octets mais qui ne sont pas correct et impossible à lire avec un outil Input Tool alors que le directory tool arrive à le lire et n'annonce pas d'erreur dans les attributs.

 

De plus, le problème se pose quand il s'agit aussi de fichiers XML ou .ZIP par exemple à chaque fois nous avons bien des fichiers téléchargés par l'outil Download Tools qui passent bien à travers l'outil Directory Tool mais impossible à lire.

 

Merci d'avance pour votre aide.


Cordialement,

Psyrio

 

 

psyrio
Comète

Bonjour @StephaneP 

 

Désolé pour cette réponse un peu tardive, en effet c'est intéressant mais malheureusement dans le cas présent impossible à utiliser car il n'y a pas de clé unique dans les fichiers que je télécharge.

Par contre, je suis de nouveau bloqué par des fichiers impossibles à lire, je ne comprend pas pourquoi le Download tool télécharge des fichiers qui ne sont pas disponibles pour créer des fichiers impossible à lire...

 

Merci encore pour votre aide.

 

Cordialement,

Psyrio

StephaneP
Alteryx
Alteryx

Hello @psyrio 

 

Perso j'arrive à charger ce fichier sans erreur hormis le fait qu'il est vide et fais apparaître une colonne nommée BLOCKED!

StephaneP_1-1605179827293.png

 

J'ai donc juste rajouter un test pour valider si la colonne BLOCKED est présente. Si oui je m'arrête sinon je fais le traitement.

StephaneP_0-1605179793901.png

Est ce que cela t'aide ?

 

Ne connaissant pas le site sur lequel tu télécharges je ne peux malheureusement pas t'aider sur l'étape de téléchargement précédente.

 

Stéphane Portier
Sales Engineer
Alteryx
psyrio
Comète

Bonjour @StephaneP ,

 

En effet c'est une solution mais comment faire pour tester un nombre de fichiers différents (CSV, TXT, XML, XLSX,ZIP,...) téléchargés sans pour autant faire un workflow par fichier (j'en télécharge plus de 20).

 

(Ci joint mon workflow de téléchargement avec dépôt dans un dossier temporaire). 

StephaneP
Alteryx
Alteryx

Je pense qu'on est au minimum obligé de faire un traitement par type de fichier (txt, xlsx, csv...). Alteryx doit au mimimum savoir quel type de fichier il essaye de lire.

Ensuite sur cette phase de test (Blocked ou non) je ferai une macro batch qui teste un à un tous les fichiers et sort un indicateur OK/KO(si blocked) sur le principe du test que j'ai transmis. Il faudra sans doute tester un peu le comportement avec tes cas particuliers mais cela devrait le faire.

 

Sais tu faire des macros batchs ?


Ensuite si tu as 20 fichiers et si tu veux les intégrer et travailler avec il va de toute manière bien falloir les traiter 1 par un car ils n'ont pas les mêmes colonnes.

 

Est ce que cela t'aide ?

Stéphane Portier
Sales Engineer
Alteryx
psyrio
Comète

@StephaneP ,

 

Merci pour ce retour. Je me doutais bien de la réponse mais ça ne m'arrange pas. En effet, j'ai déjà des workflows qui traitent ces fichiers mais je ne peux pas faire le test dans ces workflows car ils lisent les fichiers directement via le INPUT tool donc impossible de faire comme cela.

 

Je vais devoir en effet faire un test par type de fichier et en fonction faire les déplacements dans les dossiers. Je sais en effet faire des Macro batchs mais cela va rester très manuel car il va falloir quand même écrire une macro par type de fichier.

 

Je pense qu'il serait intéressant de demander une évolution sur le Download Tool afin que s'il ne trouve pas de fichier dans l'URL fournie, au moins il ne créé pas de fichier blocké ou au mieux il lance une alerte et ne créé par le fichier.

 

Merci encore pour votre aide.

 

Cordialement,

Psyrio

StephaneP
Alteryx
Alteryx

OK je comprends.

 

Sinon, je ne suis pas expert du Download tool mais voici 2 pistes dont la 1ère me semble prometteuse:

 

1. ne pas télécharger directement le fichier mais le charger dans une chaine (string voir blob). Ainsi tu peux l'analyser au sein d'Alteryx et tester si il y a un souci. 

Je ne sais pas la tête qu'aura cette chaine mais on peut imaginer que tu peux y trouver l'info te précisant que le fichier n'est pas présent ou BLOCKED !.

StephaneP_0-1605197385355.png

Pour ceux qui sont OK tu relances le téléchargement normal.

 

2. Peut être via ce même outil mais les autres option, interroger le site pour connaitre le statut. Mais là je ne m'y connais pas assez en web pour savoir si c'est possible.

 

A creuser.

 

 

 

Stéphane Portier
Sales Engineer
Alteryx
psyrio
Comète

En effet je vais regarder ce point du blob.
Pour la deuxième piste je ne m'y connais pas non plus trop en web malheureusement 😞

 

Je vous tiens au courant.

psyrio
Comète

Je pense avoir trouvé en utilisant deux Download Tools l'un pour filtré par rapport à la valeur du retour de Download Tool (HTTP 200 ou 300) pour n'avoir que les retours pour les URL semblent avoir répondues.

 

Par contre, cela m'embête pour les fichiers XML. En effet, les fichiers XML étaient directement lus en String pour ensuite les parsés. Hors ici, on est obligé de télécharger le fichier et mon workflow sur le traitement XML ne fonctionne plus car je n'arrive pas à lire le fichier XML brut (en STRING sur une seule colonne) comme le faisait le Download Tool et je ne trouve pas sur la communauté comment forcer la lecture des deux fichiers XML en STRING brut et non déjà interprétés.

Avez vous une idée pour avoir en lecture du fichier XML le contenu du fichier dans une seule ligne et colonne comme lorsqu'on télécharge un fichier XML en String ?

 

Merci d'avance.

 

Cordialement,

Psyrio

Étiquettes