Contexte

Parmi les différentes solutions d’Axess Business Solutions installées chez les clients de ce dernier, certaines d’entre elles génèrent de nombreux fichiers de type log, XML ou encore des .TIF. Au fil du temps, ces fichiers, devenus obsolètes dans le cadre de leur utilisation, commencent à occuper pas mal d’espace au niveau hardware. C’est pour cela que des tâches planifiées avaient été mises en place afin d’exécuter des batchs visant à faire le nettoyage.

Où se situe le problème me diriez-vous, vu qu’il y a un petit batch qui fait le travail souhaité. Et bien c’est au niveau de la maintenance de ce dernier que cela se situe. En effet, un environnement informatique client est un environnement qui évolue constamment. De nouveaux dossiers son créés périodiquement pendant que certains ne sont plus d’actualité, il y a des fichiers qui doivent rester plus longtemps que d’autres ou ont besoin d’être archivés, etc… Il faut donc spécifier les nouveaux chemins d’accès ou les modifier et dire au bout de combien de temps des fichiers doivent disparaître ou non. Et pour cela il faut à minima s’y connaître en informatique pour modifier et rédiger les lignes de notre batch. Alors au lieu de faire intervenir un merveilleux expert diplômé d’un bac+10 en batch, ne serait-il pas plus simple d’avoir une interface graphique afin que monsieur et madame tout le monde, ayant les autorisations nécessaires, puissent le faire ?

Purgator, le nettoyeur de l’extrême !

purgatorapp

Bien que son nom puisse paraître effrayant ou faire penser à un remake de Terminator, Purgator est la réponse à notre besoin. C’est une solution que j’ai développé via les technologies du Framework .NET de Microsoft et elle se compose de la manière suivante:

Une interface graphique

Cette partie concerne la configuration de notre nettoyage. L’utilisateur est invité, dans un premier temps, à entrer les chemins d’accès vers les dossiers. Il peut également, en cochant une case, définir si le nettoyage s’applique également aux sous-dossiers de ces derniers. Une fois ces « paths » définis, l’utilisateur spécifiera les types de fichier à supprimer. Il y a un panel par défaut de certains types dont il sera invité à les cocher si voulu. S’il souhaite ajouter d’autres types, il les entrera manuellement dans un champs associé pour les ajouter à la liste des types. Si c’est tous les types de fichier présents dans les dossiers qui sont concernés alors l’utilisateur pourra rédiger « tous » dans le champs mentionné précédemment.
Par la suite, notre utilisateur devra mentionner « l’âge » (datant de plus de…) des fichiers à traiter et enfin si ces derniers sont à supprimer ou à archiver.
Une fois ces configurations mises en place, un fichier XML de config est généré et sera utilisé par la deuxième partie applicative.
Bien entendu, ces configurations sont modifiables à souhait et sauvegardées dans le fichier en question.

Une application console

Cette partie executable est invisible pour les utilisateurs. En effet, le principe d’une tâche planifiée a été gardé et lance désormais cet executable au lieu de l’ancien batch. L’application va aller lire dans le XML de configuration qui a été généré précédemment par notre GUI et réalisera le travail souhaité. Si un soucis est rencontré, le traitement s’arrêtera et génèrera un log expliquant la ou les causes de l’arrêt du processus

Même s’il a été développé dans le contexte des logiciels d’Axess, l’avantage de cet outil est qu’il peut très bien servir au client de la société pour tout autre traitement similaire.