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

Talend Discussion :

Telecharger fichiers via FTP


Sujet :

Talend

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 36
    Points : 44
    Points
    44
    Par défaut Telecharger fichiers via FTP
    Bonjour à tous,

    Je début depuis peu sur Talend (v7.2.1), et j'aurais besoin de votre aide.

    Mon souci est le suivant:
    Dans un répertoire distant, auquel j'accède par FTP, j'ai un certain nombre de fichiers XML (un par jour) depuis plusieurs années.
    Toutes les 2 semaines, je lance un processus de traitement des derniers fichiers (soit 14 fichiers) mais les fichiers des traitements précédents sont toujours présents.

    Je souhaite faire une automatisation me permettant de ne récupérer que les fichiers non traités.
    Pour cela, j'alimente un fichier CSV contenant le nom des fichiers passés lors du dernier traitement, à partir duquel j'extrait la MaxDate.

    J'arrive actuellement à alimenter un fichier CSV avec la liste des nouveaux fichiers (en comparant leur date avec la MaxDate précédemment trouvée).
    Mais pour exécuter mon composant tFTPGet, il faudrait que je lui passe en paramètre cette liste de noms de fichiers, sinon, il récupère tous les fichiers (actuellement, j'ai un masque "*.XML" dans mon composant).

    Comme cette liste change à chaque traitement, je ne peux pas créer, dans mon tFTPGet, de masques avec le nom des fichiers. Ou alors, il faudrait créer ces masques de façon dynamique à partir de la liste.


    A savoir:
    Il n'est pas possible de supprimer les fichiers du répertoire pour n'avoir que les fichiers non traités. Je n'ai pas la main dessus.

    Si quelqu'un a le début d'une idée de solution, je suis preneur.

    J'espère avoir donné tous les détails nécessaires pour la compréhension de mon problème. N'hésitez pas si ce n'est pas le cas.

    Merci d'avance

    arsonix

  2. #2
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Hello

    Il y a un tftpfilelist https://help.talend.com/r/fr-FR/7.3/ftp/tftpfilelist

    Si tu croises les données de ton fichier CSV et du tftpfileList tu pourras déterminer quels sont les fichiers qui ne sont pas encore traités... Il faut que tu fasses juste attention à ne pas mettre à jour ton CSV en même temps que tu le lis.

    Ensuite il faut que tu iteres sur les fichiers non traités pour les télécharger via le tftpget sans utiliser de mask mais le nom de chaque fichier
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Bonjour et merci pour ta réponse.

    Pour la liste des fichiers non traités, pas de souci.

    En revanche, je galère pour la récupération des fichiers.

    Voici mes composants:
    Nom : Forum Developpez - Talend 20230406.png
Affichages : 79
Taille : 4,9 Ko

    Le tFileInputDelimited contient la liste des nouveaux fichiers à récupérer.

    J'essaie d'itérer dessus, comme suggéré, mails il semblerait que je me trompe dans la configuration du tFTPGet:

    Nom : Forum Developpez - Talend 20230406-02.png
Affichages : 77
Taille : 27,2 Ko

    Comment puis-je passer le nom du fichier en paramètre du tFTPGet?

    Merci beaucoup

  4. #4
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    C'est pas Iterate.nomFichier mais un truc du genre rowX.nomFichier ou ((String)globalMap.get("rowX.nomFichier")) ou rowX est la row avant le flux iterate
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Bonjour Geoffrey,

    J'ai essayé différentes choses à partir de tes indications mais rien ne fonctionne.

    En effet, avant le flux Iterate, j'ai un tWarn, avec un lien OnComponentOK (voir le schéma ci-dessous).
    Je n'ai donc pas de rowX.NomFichier en entrée du tFileInputDelimited.

    Nom : Pb FTP Schema 01.png
Affichages : 95
Taille : 85,3 Ko

    Quelle que soit la valeur que je mets dans le masque de fichier du composant tFTPGet (avec ou sans ((String)globalMap.get("...")) , à partir du lien Iterate ou du lien vers_liste_final ), j'obtiens un message d'erreur du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception in component tFTPGet_1 (Recuperation_sur_FTP_Test)
    java.lang.NullPointerException


    J'ai également essayé en positionnant le tFTPGet directement après le tFileOutputDelimited, mais cela ne change rien.
    Surtout que dans cette configuration, je ne peux pas mettre de lien ITERATE entre les 2.

    Nom : Pb FTP Schema 02.png
Affichages : 66
Taille : 26,6 Ko

    Dans ce cas là, l'erreur affichée est la même que précédemment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception in component tFTPGet_2 (Recuperation_sur_FTP_Test)
    java.lang.NullPointerException

    Existe-t-il une autre solution?
    A moins que je ne me sois trompé dans ma configuration?

    Merci d'avance

  6. #6
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Citation Envoyé par arsonix Voir le message
    Je n'ai donc pas de rowX.NomFichier en entrée du tFileInputDelimited.

    Nom : Pb FTP Schema 01.png
Affichages : 95
Taille : 85,3 Ko


    Utilise le un tFlowToIterate pour avoir avoir une connexion de type row

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tFileInputDelimited - rowX -> tFlowToIterate - iterate -> tFtpGet
    Et du coup tu pourras réutiliser rowX dans le tFtpGet
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

Discussions similaires

  1. Telechargement fichier via FTP
    Par Sohhf dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2016, 16h53
  2. Envoyer un fichier via FTP via un socket
    Par JnJp28 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 24/05/2007, 21h37
  3. Upload de fichier via FTP / OpenFileDialog
    Par Pokerstar dans le forum VB.NET
    Réponses: 2
    Dernier message: 18/05/2007, 04h34
  4. [applet ]envoyer fichier via ftp? quelle solution?
    Par chouchou93 dans le forum Applets
    Réponses: 5
    Dernier message: 27/03/2006, 16h35
  5. []transfert de fichiers via FTP
    Par ista9im dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/10/2005, 00h02

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