Dans des projets d'intégration de données, il est possible de rencontrer des fichiers sources dont le nom peut fluctuer en fonction de critères tels que la date, l'heure ou d'autres paramètres dynamiques. Dans cet article, vous découvrirez comment réaliser un mapping spécifique en fonction du nom de fichier dans la source de données qui est dynamique, en utilisant Semarchy xDI.

Les étapes du process d'integration dans Semarchy xDI

Voici un aperçu du process. 

Comment Intégrer un fichier au nom dynamique avec Semarchy xDI ?

Étape 1 

La première étape est une action "FileWait" depuis la Palette Semarchy xDI. Nous avons glissé-déposé la métadonnée de notre dossier source pour attendre les différents fichiers que l’on trouvera dans le chemin de notre dossier.

Nous avons défini les propriétés du FileWait de la manière suivante :

  • Wait File Includes *.csv

Cette propriété spécifie le nom de fichier que le composant FileWait attend. Ici, ‘*.csv’ signifie que le composant surveillera l'arrivée de fichiers dont l'extension est .csv. Le caractère générique * indique que le nom du fichier peut être n'importe quoi, tant qu'il se termine par .csv.

  • Wait File Nb Files : -1

Cette propriété définit le nombre de fichiers que le composant FileWait doit attendre avant de déclencher l'étape suivante du processus. La valeur -1 indique que le composant FileWait attendra l'arrivée de tous les fichiers correspondant au motif *.csv. Il ne passera à l'étape suivante que lorsqu'il n'y aura plus de nouveaux fichiers à détecter.

  • Wait File TimeOut : 0

Cette propriété spécifie la durée maximale pendant laquelle le composant FileWait doit attendre l'arrivée des fichiers correspondants. La valeur 0 indique qu’il n’y a aucune limite de temps pour l’attente. Le composant FileWait continuera à surveiller jusqu’à ce que les fichiers soient détectés.

Étape 2

La deuxième étape est un ‘ExecuteDelivery’. Il s’agit d’un composant qui permet de déclencher l’exécution d’un delivery, c’est-à-dire un sous-process. Il est paramétré de la façon suivante :

  • DELIV_NAME : SOUS_PROCESS

Cette propriété spécifie le nom du Delivery ou du sous-process que vous souhaitez activer. Au moment de l'exécution de ce composant, le système va rechercher et démarrer le processus nommé ‘SOUS_PROCESS’.

  • p_nom_fichier : :{FILE_NAME}:

Cette propriété correspond à un paramètre d'entrée pour le Delivery ou le sous-processus.

p_nom_fichier est un paramètre personnalisé qui est alimenté par la valeur dynamique de {FILE_NAME}. Cette variable qui représente le nom du fichier en cours de traitement. Lorsque le processus est déclenché, cette variable sera remplacée par le nom réel du fichier.

À noter qu’au sein de votre metedata de vos fichiers, vous devez affecter ce paramètre dans le physical name.

    Comment Intégrer un fichier au nom dynamique avec Semarchy xDI ?

  • ${~/p_nom_fichier}$ est utilisé pour déterminer le nom du fichier à utiliser en fonction d'une variable en utilisant la propriété Physical Name. Cela offre une grande flexibilité dans la gestion des fichiers au sein d’un process d'intégration de données, en permettant de traiter différents fichiers sans modifications manuelles des paramètres de configuration à chaque exécution.
  • p_chemin_fichier : :{FILE_DIR}

De manière similaire à p_nom_fichier, cette propriété définit un autre paramètre d'entrée pour le Delivery ou le sous-processus. p_chemin_fichier reçoit la valeur dynamique de {FILE_DIR}, qui correspond au chemin du répertoire où le fichier est situé. Le paramètre p_chemin_fichier, permettant au processus ou sous-processus appelé de savoir où aller chercher le fichier.

Résumé Fonctionnel

  • DELIV_NAME indique quel sous-processus doit être exécuté.
  • DELIV_SESSION_NAME donne un nom de session dynamique pour chaque exécution, basé sur le fichier traité, ce qui facilite le suivi.
  • p_nom_fichier et p_chemin_fichier sont des paramètres dynamiques utilisés pour passer des informations sur le fichier (nom et chemin) au sous-processus, garantissant que le fichier correct est traité.

Exécution du sous-process

Il est courant de récupérer un ensemble de fichiers et de les traiter dans un processus, un par un. Voici une manière simple pour gérer cette itération.

Nous désirons réaliser un mapping en fonction du nom de fichier obtenu en source. Pour ce faire, nous allons utiliser l’action Sql To Parameters qui nous permettra de définir une variable afin de savoir quel mapping doit être exécuté en fonction du nom de fichier.

Comment Intégrer un fichier au nom dynamique avec Semarchy xDI ?

En utilisant SQL to Parameters, nous pouvons exécuter une requête SQL pour définir la valeur de notre paramètre 'p_type_fichier'. Cette requête SQL ne renvoie qu'une seule valeur en fonction des conditions. L'objectif est de permettre au processus d'adapter son comportement en fonction du type de fichier détecté.
Le conditionnement des étapes suivantes du process se fait en ajoutant une condition d'exécution sur les liens (remarquez qu'ils apparaissent sous forme de lignes pointillées, ce qui signifie qu'il s'agit d'une condition d'exécution sur le lien).

Les conditions de fonctionnement sont les suivantes (ce sont des expressions Javascript qui renvoient une valeur booléenne) :

  • En ce qui concerne le lien de gauche : '${~/p_type_fichier}$' = "A"
  • En ce qui concerne le lien de droite : '${~/p_type_fichier}$' = 'B'

En fonction du nom de fichier reçu en entrée, le mapping A ou B sera exécuté. Après avoir traité ce fichier, il peut être intéressant de le supprimer. 

  • Pour économiser de l'espace de stockage et à réduire le risque de traitement de données en double.Del File : ${~/p_chemin_fichier}$/${~/p_nom_fichier}$
  • ${~/p_chemin_fichier}$ : Cette variable représente le chemin du répertoire où se trouve le fichier.
  • ${~/p_nom_fichier}$ : Cette variable représente le nom du fichier à supprimer.

Lors de l'exécution de ce composant, Semarchy xDI remplace les variables par leurs valeurs actuelles et supprime le fichier situé à l'emplacement résultant.

Et voilà, vous savez désormais comment réaliser un mapping en fonction du nom de fichier dynamique avec Semarchy xDI.

Vous souhaitez aller plus loin ? Vous avez des questions ? Contactez Next Decision et ses experts en Data Integration pour toute question sur l’outil Semarchy xDI.