IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SSIS Discussion :

[SSIS] [2K5] foreach loop récupération nom du fichier


Sujet :

SSIS

  1. #1
    Membre éclairé Avatar de Bernardos
    Homme Profil pro
    Consultant Senior dba sql server & Microsoft Business Intelligence
    Inscrit en
    Avril 2008
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Senior dba sql server & Microsoft Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 332
    Points : 723
    Points
    723
    Par défaut [SSIS] [2K5] foreach loop récupération nom du fichier
    Bonjour,
    je voudrais pouvoir via ssis faire un traitement sur plusieurs fichiers et les renommer/déplacer. j'utilise un foreach loop.
    J'arrive sans problème à ouvrir et traiter l'entierté des fichiers. par contre, une fois le traitement terminé je voudrais renommer le fichier en utilisant le nom original

    exemple :
    • nom de fichier :macommande12345.csv
    • date du jour : 20110107
    • nom client : Arthur
    • nouveau nom de fichier : 20110107 Arthur macommande12345.csv


    Le problème est que le nom de fichier que j'arrive à récupérer via le connection string du flat file manager ou via le FileNameColumnName contient le nom complet avec le chemin (c:\mon repertoire\labas\monfichier.csv) et que je voudrais juste récupérer le nom (monfichier.csv)

    Quelqu'un peut il m'aider?

    Bien à vous,

    Loic

  2. #2
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Alors tu as plusieurs solutions: si tous tes fichiers sont dans le même répertoire tu peux garder le dossier en variable figée et utiliser le ForEach File en mode FileName pour te renvoyer le FileName et pas le Fully Qualified. Si ce n'est pas le cas alors tu peux aussi extraire le FileName dans un script en .NET tu as la méthode System.IO.Path.GetFileName(FullPath).

  3. #3
    Membre éclairé Avatar de Bernardos
    Homme Profil pro
    Consultant Senior dba sql server & Microsoft Business Intelligence
    Inscrit en
    Avril 2008
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Senior dba sql server & Microsoft Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 332
    Points : 723
    Points
    723
    Par défaut
    re,
    merci de ta réponse.
    mes fichiers sont effectivement tous dans le meme répertoire. j'avais effectivement cherché du coté du filenameretrieval mais le problème se posait alors à l'ouverture des fichiers. quand tu parles de variable figée pour le dossier je ne vois pas ce que je dois faire pour faire cela...
    peux tu expliciter ?
    merci d'avance

    loic

  4. #4
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Bah disons que si ils sont tous dans le même dossier tu peux créer une variable de type string, que tu appelles Path mettons. Dedans tu mes le dossier, mettons "C:\Imports\".
    Sur ce tu mets ton ForEach en FileName, et tu le mets sur ce dossier. Les fichiers sont lus, et leur nom est placé dans une variable appellée par exemple Fichier.
    Quand tu lis (avec un Data Flow par exemple) les fichiers, tu paramètres ton ConnectionManager avec une expression sur sa propriété ConnectionString, et pas une valeur fixe, qui est la concaténation de ton nom de fichier avec le nom de dossier. Un truc du style User:ath+User::Fichier.

  5. #5
    Membre éclairé Avatar de Bernardos
    Homme Profil pro
    Consultant Senior dba sql server & Microsoft Business Intelligence
    Inscrit en
    Avril 2008
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Senior dba sql server & Microsoft Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 332
    Points : 723
    Points
    723
    Par défaut
    Re,
    Ok merci beaucoup pour ton aide.
    J'ai finalement opté pour la 2ème solution qui me semble mieux.
    encore merci à toi

    bien à toi

    Loic

  6. #6
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/01/2011, 15h14
  2. [SSIS] [2K5] "Foreach file" choix fichiers
    Par StitchP dans le forum SSIS
    Réponses: 2
    Dernier message: 21/05/2010, 12h33
  3. [SSIS] [2K5] ForEach Loop ou traitements en série
    Par MoitieDeCigare dans le forum SSIS
    Réponses: 2
    Dernier message: 19/03/2010, 17h14
  4. [SSIS][2k5] Foreach loop
    Par mikaeru dans le forum SSIS
    Réponses: 3
    Dernier message: 29/08/2008, 10h16
  5. [SSIS][2k5] - Foreach Loop Container
    Par sandF dans le forum SSIS
    Réponses: 2
    Dernier message: 29/01/2008, 17h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo