[SSIS] Déplacer et renommer un fichier grâce à la tache File System Task

Introduction

Dans ce tutoriel, nous allons voir un exemple d’utilisation du composant File System Task.
Vous pouvez utiliser cette tache pour les cas suivants :

  1. Copier un dossier ou un fichier d’un lieu à un autre
  2. Créer un dossier
  3. Supprimer un dossier ou un fichier
  4. Supprimer le contenu d’un dossier ( tous les fichiers et les dossiers)
  5. Déplacer un dossier ou un fichier
  6. Renommer un fichier

Nous ne verrons que les deux derniers cas, soit le cas 5 et le cas 6.

Préparation

  • Créez un dossier dans lequel nous allons placer le fichier source FichierExemple.txt.
    Créez un dossier « FichierTraites » pour classer les fichiers traités.
    On a donc le fichier à la racine du dossier principal et un dossier « FichierTraites » pour classer les fichiers traités.

    Arborescence dossier

    Arborescence dossier

  • Voici le contenu du fichier source

    Contenu du fichier FichierExemple.txt

    Contenu du fichier FichierExemple.txt

Déroulement

1- Créer un nouveau package pkg_FileSystem.dtsx .

Création du Package

Création du Package

2- Créer les 3 variables suivantes :

  • DossierDestination : I:\articles\SSIS\File System Task\FichierSources\FichierTraites
  • DossierSource :  I:\articles\SSIS\File System Task\FichierSources\
  • NomFichier : FichierExemple
Les variables

Les variables

3- Ajoutez un Data Flow Task et complétez de la manière suivante :

DFT - Insertion des données

DFT – Insertion des données

  • Ajoutez le composant « Flat File Source »
    Fichier Plat

    Fichier Plat

    – Créez une connexion au fichier texte FichierExemple.txt (Flat File Connection)  : cmFichier
    – Dans la propriété « Expressions » de la connexion, entrez l’expression suivante :
                 @[User::DossierSource] + « \\ » + @[User::NomFichier] + « .txt »

    ConnectionString connexion manager

    ConnectionString connexion manager

    Expression de la connexion au fichier plat

    Expression de la connexion au fichier plat

    Je n’ai pas développé le contenu du Data Flow, je vous laisse le soin de le modifier en fonction de vos besoins.

4- Ajoutez une tache  » File System Task  » et configurer le de la manière suivante :

  1. Dans le champ « Operation », sélectionnez « Move file ». (1)
  2. Dans le champ « Source Connection », sélectionnez la connexion cmFichier que nous avons crée précédemment. (2)
  3. Dans la partie « Destination Connection », mettez la valeur de la propriété « IsDestinationPathVariable » à « True » (3) et sélectionnez la variable « User::DossierDestination » (4)
File System Task - Dossier fichiers traités

File System Task – Dossier fichiers traités

5- Une fois terminé, exécuter le package (touche F5) et vérifiez le fichier a bien été déplacé dans le dossier des fichiers traités.

6- Ajoutez une nouvelle tache  » File System Task  » et configurer le de la manière suivante :

  1. Dans la partie « Operation », sélectionnez « Rename file » (1)
  2. Dans la partie « Source Connection », créez une nouvelle connexion vers le fichier traité et nommer la : cmFichierTraite (2)
  3. Dans la partie « Destination Connection », créez aussi nouvelle connexion vers le même fichier et nommer la : cmFichierRenomme (3)
  4. Valider avec la touche OK.
  5. Modifier la propriété « Expression » de chaque connexion avec les « ConnectionString » suivante (encadré bleu):
    – @[User::DossierDestination] + « \\ » +  @[User::NomFichier] + « .txt »   (cmFichierTraite)
    – @[User::DossierDestination]+ »\\ »+ @[User::NomFichier]+ »_ »+(DT_WSTR,30)(DT_DBDATE)(DATEADD(« d »,0,GETDATE()))+ ».txt » (cmFichierRenomme)
File System Task renommage fichier

File System Task renommage fichier

6- Le contenu de notre lot sera le suivant :

Ensemble du package

Ensemble du package

Exécution du lot pkg_FileSystem

Dossier racine avant exécution du lot

Etat dossier avant exécution du package

Etat dossier avant exécution du package

Dossier racine après exécution du lot

Fichier déplacé

Fichier déplacé

Dossier des fichiers traités après exécution du lot

Renommage du fichier

Renommage du fichier

Résultat

On remarque le fichier été déplacé et renommer en fonction de la date d’exécution du lot.
On peut utiliser cette technique afin d’insérer quotidiennement des données issues d’un fichier texte dans une base de données.
Pour pousser un peu plus loin l’utilisation de ce composant, on peut l’insérer dans un boucle (Foreach Loop).
Cette solution nous permettrais de l’utiliser pour un ensemble de dossiers ou de fichiers.
Nous verrons comment utiliser le composant Foreach Loop dans un autre article.
Ecrit par Harry Kancel

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s