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

MS SQL Server Discussion :

SSIS FTP Task : comment faire un FileWatcher ?


Sujet :

MS SQL Server

  1. #1
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut SSIS FTP Task : comment faire un FileWatcher ?
    Bonjour à tous !


    J'utilise le module FTP dans mes chaines SSIS régulièrement : une fois pour l'upload d'une requête, et quelques minutes plus tard pour le download d'une réponse.
    Toutefois je n'ai trouvé d'autres solutions que de bidouiller un script .NET qui attend entre les 2 étapes.
    Idéalement, j'aurais voulu un module de FileWatching par FTP qui lancerait le téléchargement dès que le fichier à surveiller apparaît.

    Est-ce que vous savez-comment je pourrais faire ça ?

    Merci !

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Les différentes solutions possibles (que je connais en tout cas) :

    - Tâche de script (ce que vous avez fait apparemment)
    - Une boucle ForEach avec un énumérateur de type File
    - Un module prêt à l'emploi (je n'ai pas testé) proposé par sqlis à cette adresse

    ++

  3. #3
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    merci de la réponse !

    je n'ai pas fait un vrai filewatcher en script pour le moment, au pire je mettrai la main à la pâte.

    J'avais aussi vu le module que tu m'indiques, mais je n'avais pas eu l'impression qu'il permettait de faire du FTP, je vais regarder plus en détail.


    edit : visiblement, pas de FTP, ça n'a pas l'air d'être la solution, dommage c'était la plus simple !

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Non ,non effectivement il ne remplit pas la fonction de FTP. Il permet simplement de faire du FileWatcher. Il reste à implémenter le reste derrière. (Dommage par ailleurs )

    ++

  5. #5
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    pour l'énumérateur, je ne vois pas non plus comment faire :



    visiblement on ne peut désigner que des fichiers sur le réseau

  6. #6
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bon visiblement je n'avais pas compris le sens de ta question (toutes mes excuses )

    Les solutions que je t'ai proposé permettent simplement de détecter sur un système local des fichiers et de lancer une tâche FTP dans un 2ème temps. Donc pas de détection à distance .....

    Pour simuler un tel comportement je ne vois que le bidouillage ou encore une combinaison tâche FTP + Foreach file enumerator en 2 phases

    1ère phase :
    --> Foreach File Enumerator : détection fichier à uploader
    --> Tâche FTP : si fichier upload sur le FTP

    2ème phase :
    --> Tâche FTP : download FTP
    --> Foreach File Enumerator : si détection fichier alors traitement

    Ce n'est pas un filewatcher FTP en tant que tel mais ca ne nécessite pas de bidouillage autre ...

    ++

  7. #7
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    merci de ton aide

    voila quelque chose qui marche : (script task)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Public Sub Main()
     
            Dim FTPConnectionManager As ConnectionManager
            Dim folders() As String
            Dim files() As String
            Dim file As String
            Dim TimeOut As Integer
            Dim fileIsHere As Boolean
            Dim i As Integer
     
            If Dts.Variables.Contains("WaitTime") Then
                TimeOut = CInt(Dts.Variables("WaitTime").Value)
            Else
                TimeOut = 1
            End If
     
            Dim fileToWatch As String = Dts.Variables("FileToWatch").Value.ToString.ToUpper()
     
     
            FTPConnectionManager = Dts.Connections("FTP Bloomberg Payant")
            FTPConnectionManager.Properties("ServerUserName").SetValue(FTPConnectionManager, Dts.Variables("FTPLogin").Value)
            FTPConnectionManager.Properties("ServerPassword").SetValue(FTPConnectionManager, Dts.Variables("FTPPassword").Value)
            FTPConnectionManager.Properties("ServerName").SetValue(FTPConnectionManager, Dts.Variables("FTPServer").Value)
     
            Dim ftp As FtpClientConnection = New FtpClientConnection(FTPConnectionManager.AcquireConnection(Nothing))
     
     
            fileIsHere = False
            While Not fileIsHere
                System.Threading.Thread.Sleep(TimeOut * 1000 * 60) 'en millisecondes, 3000 = 3 secondes
     
                ftp.Connect()
                ftp.GetListing(folders, files)
     
                i = 0
                While i <= UBound(files)-1 And Not fileIsHere
                    file = files(i).ToUpper()
                    If file = fileToWatch Then
                        fileIsHere = True
                    End If
                    i += 1
                End While
     
                ftp.Close()
     
            End While
     
            Dts.TaskResult = Dts.Results.Success
     
     
        End Sub

Discussions similaires

  1. SSIS - FTP Task
    Par cavo789 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/01/2008, 21h15
  2. SSIS : FTP Task : problème!
    Par kaboume dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/08/2006, 15h32
  3. [C#][VS] Comment faire du FTP
    Par ikritt2 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 07/07/2006, 16h11
  4. Comment faire du FTP ?
    Par MegaBigBoss dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 20/06/2006, 12h27
  5. [C#][FTP] Comment faire du FTP?
    Par bakonu dans le forum C#
    Réponses: 2
    Dernier message: 29/03/2006, 12h47

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