Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
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

Tips de la semaine (54) - Rapatrier le dernier fichier mis à jour dans un répertoire

StephaneP
Alteryx
Alteryx

Salut folle jeunesse,

 

Aujourd’hui un grand classique : Comment rapatrier le dernier fichier mis à jour dans un répertoire ?

 

Cela sert régulièrement.

  • On me pousse plusieurs versions de fichiers et je veux être sûr de ne prendre toujours que la dernière version sans devoir la choisir manuellement
  • On enregistre chaque semaine dans le répertoire partagé un nouveau fichier de la semaine courante et je veux le charger sans être obligé de spécifier son nom en dur.

Et bien c’est encore une fois très simple.

Désolé de tuer tout de suite le suspens...mais voici à quoi cela ressemble.

StephaneP_10-1583258817019.gif

StephaneP_0-1583258538041.png

Nous allons utiliser la combinaison des objets principaux suivants :

 

StephaneP_1-1583258538045.png

  1. L’objet « Directory » qui rapatrie la liste des fichiers d’un répertoire avec toutes leur caractéristique, DONT la date de dernier enregistrement ET le chemin complet pour trouver ce fichier.

          Vous voyez où on va…

 

Par exemple :

StephaneP_2-1583258538048.png

 

Ce paramétrage indique que l’on veut tous les fichiers de type .xlsx du répertoire .\temp

Pour mémoire .\ indique que l’on part du répertoire où est enregistré le worklow. On peut aussi mettre le chemin complet bien entendu.

Note : n’hésitez pas à combiner les caractères « ? » <=> 1 caractère ou « * » <=> n’importe quel nombre de caractère pour affiner ou élargir la sélection des fichiers, extension de fichier ou répertoires (CA_201?.xlsx ramènera les fichiers CA_2010, CA_2011, CA_2012…)

 

En sortie de cet outil on trouve la liste des fichiers mais aussi les 19 caractéristiques suivantes.

StephaneP_3-1583258538067.png

 

Exemple de sortie pour les 3 colonnes qui nous intéressent :

StephaneP_4-1583258538098.png

 

StephaneP_5-1583258538099.png

  1. L’objet « Dynamic Input » qui permet à partir d’un chemin complet et d’un format de fichier de charger celui-ci. Il s’appelle Dynamic car on ne sait pas à l’avance quel sera le chemin et le nom du fichier. Ce n’est qu’un paramètre.

StephaneP_6-1583258538103.png

Cet objet est particulièrement riche. Nous utiliserons ici une seule de ses options.

 

Action : Change Entire File Patch <=> On lui précise que l’on va lui passer un chemin complet pour trouver le fichier à charger

Field : On lui précise dans quel champs de l’entrée il va trouver ce chemin complet. Ici « FullPath »

Input Data Source Template : Enfin il faut lui préciser un modèle du type de fichier à charger. Ici on va donc chercher n’importe lequel des fichiers à charger.

A quoi cela sert t’il ? C’est très pratique pour éviter de charger un fichier qui n’a rien à voir et que quelqu’un a déposé par erreur. Cela sert aussi à formater la suite du workflow et permettre de savoir quelles colonnes on aura en sortie.

 

On réalise donc l’enchainement suivant :

  1. J’extrais la liste et les caractéristiques des fichiers du répertoire cible
  2. Je sélectionne les 3 attributs qui m’intéressent (chemin complet, no du fichier, date de dernière mise à jour)
  3. Je trie ces fichiers par ordre de date de mise à jour décroissante
  4. Je ne garde que la 1ère ligne
  5. J’utilise le Dynamic input pour charger le fichier dont le chemin complet se trouve dans ma table
  6. J’exulte !

En pièce jointe le workflow.

 

Si vous souhaitez avoir d’autres astuces de mise à jour dynamique de workflow je ne peux que vous conseiller cette vidéo (ici) du célèbre JoeM  (en anglais pour l'instant) sur toutes les méthodes qui rendront vos workflows dynamiques. C’est super simple à mettre en place et vous gagnerez des heures de tâches répétitives.

 

Enjoy !

Stéphane Portier
Sales Engineer
Alteryx
2 RÉPONSES 2
WilliamR
Alteryx
Alteryx

@StephaneP ,j'adore tant le fond que la forme. Bravo.

StephV
Alteryx Alumni (Retired)

Effectivement, tout est simple quand @StephaneP l'explique ! Merci ! 

Steph Vitale-Havreng
Étiquettes