Génération de fichiers multiples à partir d’un mapping PowerCenter
Objectif : générer, au travers d’un mapping PowerCenter, plusieurs fichiers de sortie qui ont pour nom la valeur contenue dans un fichier en entrée.
Exemple :
Construction du mapping : le mapping doit contenir au minimum les objets suivants :
- Un objet « Source » : permet la définition des données en entrée.
- Un objet « Expression Definition » : permet la définition de variables nécessaire au split des données en entrée.
- Un objet « Transaction Control Transformation » : permet la génération des différents fichiers de sortie.
- Un objet « Target » : permet la définition des fichiers de sortie.
Définition des objets :
- L’objet « Source » : dans cet exemple, il est supposé que le nom des différents fichiers de sortie est situé en début de ligne (colonne NOM_FIC).
Il est également supposé que cette colonne est séparée du reste de la ligne par un caractère présent une seule fois par enregistrement.
- L’objet « Expression Definition » : Dans l’exemple suivant, l’objet contient :
En entrée :
-
- NOM_FIC : contient le nom des fichiers de sortie tel que donné par le fichier source
- RESTE_LIGNE : contient le reste de l’enregistrement
- En intermédiaire :
- Curr_Name : permet de stocker le nom de fichier de l’enregistrement précédent.
En sortie :
-
- NOM_FIC_OUT : contient le nom complet des fichiers de sortie (répertoire + nom du fichier)
- RESTE_OUT : contient le reste de l’enregistrement avec suppression des espaces en fin d’enregistrement.
- Prev1_Out : contient le calcul de la variable Curr_Name
- Prev2_Out : contient le nom du fichier de sortie tel que donné en entrée
- L’objet « Transaction Control Transformation » :
C’est dans cet objet que se réalise la génération des multiples fichiers de sortie. Dans l’onglet « Properties », il faut renseigner l’attribut « Transaction Control Condition ». Dans le cas où le nom de fichier courant est différent du nom de fichier de l’enregistrement précédent, il faut signifier la rupture avec la commande TC_COMMIT_BEFORE. Dans le cas contraire, il faut utiliser la commande TC_CONTINUE_TRANSACTION pour stocker les enregistrements jsqu’à la prochaine rupture.
N.B. : pour optimiser les performances et minimiser la log, il faut avoir en entrée un fichier trié sur le nom de fichier.
- L’objet « Target » :
Afin de signifier que le nom des fichiers de sortie est passé en paramètre, il faut cliquer sur le bouton « Add Filename column to the folder ». Il faudra renseigner le nouveau champ « FileName » avec la variable en sortie du « Transaction Control Transformation » qui contient le nom des fichiers.
Aucune particularité n’est nécessaire en ce qui concerne la configuration de le Session.

Commentaires récents