Le Post Infeeny

Les articles des consultants et experts Infeeny

Comment archiver des fichiers/dossiers avec SSIS ?

Il est parfois pratique dans un projet, de garder un historique des fichiers sources.
Pour cela, une solution simple serait de compresser ces fichiers par mois.
C’est donc ce que nous allons voir dans ce tutoriel, à l’aide du composant Execute Process Task et du logiciel de compression 7zip.

Déroulement

1- Glissez le composant « Execute Process Task »

1

2- Éditez le et renseignez les champs comme ci-dessous

3

Dans notre exemple, nous allons utiliser l’application opensource 7zip (Téléchargeable ici http://www.7-zip.org/) avec la commande « a » qui signifie « archiver » ou « add ».

Dans le champ « Executable », on renseigne l’exécutable à utiliser. (1)
Dans le champ « Arguments », on renseigne la commande (2),
le chemin et nom du fichier compressé qui sera généré (3) 
et le chemin du dossier à compresser. (4)

On obtient donc l’argument suivant :

C:\Users\harry\Desktop\BICOACH\SSIS\7-Zip.7z C:\Users\harry\Desktop\BICOACH\SSIS\Zip

Archivage des fichiers compressés

L’inconvénient de cette première étape est que le fichier est écrasé à chaque lancement du package.
La solution pour y remédier est tout simplement d’intégrer la notion de temps dans le nom donnée au fichier, afin de pouvoir archiver ces derniers.

4

5


« a C:\\Users\\harry\\Desktop\\BICOACH\\SSIS\\ »
 + (DT_STR, 4, 1256) YEAR(GETDATE()) + »-« + (DT_STR, 2, 1256) MONTH(GETDATE()) + »-« + (DT_STR, 2, 1256) DAY(GETDATE()) + « _FULL.7z  C:\\Users\\harry\\Desktop\\BICOACH\\SSIS\\Zip\\ »

Vous avez aussi la possibilité de créer des dossiers automatiquement, si vous mettez des « / » à la place de « -« .

Note :

Si on souhaite prendre dans le même dossier que le répertoire source certains fichiers qui ont par exemple dans leur nom, le mot « Export » :

« a  » +@[User::Repertoire]+ »\\archive_ » + (DT_STR,4,1252)YEAR(GETDATE()) + » »+ RIGHT(« 0 » + (DT_STR,2,1252)MONTH(GETDATE()),2) + » »+ RIGHT(« 0 » + (DT_STR,2,1252)DAY(GETDATE()),2) + « .zip  » + @[User::Repertoire]+ »\\*Export*.txt »

Il est possible de modifier la valeur de la variable en exécutant la ligne suivante dans une script batch (fichier avec l’extention  .bat) :
« dtexec /F « C:\chemin du package\ZipPackage.dtsx » /SET \Package.Variables[User::Repertoire].Properties[Value];Valeur de la variable« 

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

%d blogueurs aiment cette page :