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

Développement de jobs Discussion :

tFTPGet ne recuperer que les fichiers dont nom contient nr du mois precedent


Sujet :

Développement de jobs

  1. #1
    Membre actif
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Points : 238
    Points
    238
    Par défaut tFTPGet ne recuperer que les fichiers dont nom contient nr du mois precedent
    Bonjour.

    Sous Talend Open Studio, je cherche a recuperer d'un serveur un fichier dont
    le nom contient une date du mois -2.

    Par exemple, le fichier se nomme "test_2013_01_31.csv".

    Chaque mois j'ai un nouveau fichier, par exemple pour fevrier j'ai le fichier "test_2013_02_28.csv"

    Nous sommes en mars. J'extrais les donnees a fin fevrier et j'aimerai ensuite comparer les donnees a fin janvier avec les donnees a fin fevrier.
    Je viens de faire l'extraction des donnees de fevrier, je les ai donc dans une table MySQL.
    Par contre, les donnees de janvier sont dans un fichier csv.

    J'ai donc besoin d'importer les donnees du fichier csv de janvier dans une table MySQL pour ensuite faire les cadrages.

    Je cherche a utiliser ca dans tFTPGet, tFileInputDelimited, et d'autres objets de ce type ou je dois saisir un nom de fichier.

    Actuellement, l'utilisateur saisie la date "limite" dans un tmsgbox (date du dernier jour du mois a extraire, date qui sert dans les requetes sql comme date limite).

    Dans le nom des fichiers generes pour le mois precedent, j'utilise la valeur saisie par l'utilisateur dans le Tmsgbox en rajoutant, au nom du fichier saisie en dur, la chose suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    ((String)globalMap.get("tMsgBox_1_RESULT"))
    Ce qui me permet, si l'utilisateur saisie "2013-02-28" d'obtenir un fichier dont le nom contient "2013-02-28".

    Sauf que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ((String)globalMap.get("tMsgBox_1_RESULT"))
    est dans un format texte ce qui provoque des messages d'erreur lorsque je rajoute "month" devant.

    Comment resoudre ?

    Merci.
    Cdlt

  2. #2
    Membre actif Avatar de kayim
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 134
    Points : 283
    Points
    283
    Par défaut
    Hello,

    Je mettrais la date yyyy-mm à Mois-2 dans une variable globale que j'appelle m_2 avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TalendDate.formatDate("yyyy-MM", TalendDate.addDate(TalendDate.getCurrentDate(), -2, "MM")).
    En suite dans mon Filemask du tFTPFileList j'ajouterais

    "*"+((String)globalMap.get("m_2"))+"*.csv" pour recuperer mon fichier M-2 localement, puis le traiter comme souhaité. sinon prendre le max si y' plusieurs fichiers
    Images attachées Images attachées  
    Etre un homme c'est regarder le diable droit dans les yeux et lui dire d'aller se faire foutre...

  3. #3
    Membre actif
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Points : 238
    Points
    238
    Par défaut
    Bonjour.

    Merci pour cette reponse

    Ne comprenant pas bien ou saisir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    TalendDate.formatDate("yyyy-MM", TalendDate.addDate(TalendDate.getCurrentDate(), -2, "MM")).
    J'ai saisie la chose suivante directement dans le tFTPGet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "test_"+((String)globalMap.get(TalendDate.formatDate("yyyy-MM", TalendDate.addDate(TalendDate.getCurrentDate(), -2, "mm"))))+"*.csv"
    Le job ne m'a pas jete, il s'est termine sans erreur.

    Par contre, le fichier qui est sur le serveur et qui s'appele "test_2013-01-31.csv" n'a pas ete rappatrie en local.

    J'ai essaye de faire comme indique :
    dans tFixedFlowInput j'ai laisse les valeurs par defaut
    dans tSetGlobalVar j'ai saisie les choses suivantes :
    - cle : "m-2"
    - Valeur : TalendDate.formatDate("yyyy-MM", TalendDate.addDate(TalendDate.getCurrentDate(), -2, "MM"))

    Lorsque je lance le job, j'ai l'erreur suivante a cause du tFixedFlowInput :
    - Le parametre (Valeurs) doit avoir au moins une valeur
    - Aucun schema n'est defini

    En cherchant sur internet, j'ai trouve que pour tFixedFlowInput il faut definir des champs, mais je ne vois pas comment je peux les definir ici.

    Je viens de selectionner, dans tFixedFlowInput, l'option "Use Inline content(delimited file)", j'ai modifie le separateur en "|" (qui est le separateur de champs dans mon fichier). Talend me repond que je dois alimenter le champ contenu.

    Cdlt,

  4. #4
    Membre actif Avatar de kayim
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 134
    Points : 283
    Points
    283
    Par défaut
    Hello,

    Voici 2 illustrations. mieux qu'un long discours il parait.
    Images attachées Images attachées   
    Etre un homme c'est regarder le diable droit dans les yeux et lui dire d'aller se faire foutre...

  5. #5
    Membre actif
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Points : 238
    Points
    238
    Par défaut
    Merci pour les copies d'ecran qui effectivement me permettent de comprendre rapidement comment faire.

    Par contre, j'ai parametre tSetGlobalVar comme indique.
    Reponse de Talend lorsque je lance le job : "row2 ne peut pas etre resolu en tant que variable.

    Cdlt,

  6. #6
    Membre actif Avatar de kayim
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 134
    Points : 283
    Points
    283
    Par défaut
    ah oui il faut que tu prennes le nom de ta sortie issue tu tFixedFlowInput.

    Sinon c'est une meilleure idée de mettre directement dans ton tFTPFileList

    "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test_"+((String)globalMap.get(TalendDate.formatDate("yyyy-MM", TalendDate.addDate(TalendDate.getCurrentDate(), -2, "MM"))))+"*.csv"
    (attention au majuscule "MM")
    Etre un homme c'est regarder le diable droit dans les yeux et lui dire d'aller se faire foutre...

  7. #7
    Membre actif
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Points : 238
    Points
    238
    Par défaut
    Dans le champ Valeur de tSetGlobalVar j'ai copie la formule du champ Valeur du tFixedFlowInput.

    J'ai du modifier la valeur que j'avais dans le tFTPGet suite a une erreur de ma part.

    Ca fonctionne.

    Merci pour l'aide apportee, ca resout mon probleme


    Cdlt,

  8. #8
    Membre actif Avatar de kayim
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 134
    Points : 283
    Points
    283
    Par défaut
    Cool jean,

    En reprenant ton idée j'ai pu simplifier un peu le job :
    Images attachées Images attachées    
    Etre un homme c'est regarder le diable droit dans les yeux et lui dire d'aller se faire foutre...

  9. #9
    Membre actif
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Points : 238
    Points
    238
    Par défaut
    Bonjour.

    Merci pour cette derniere astuce.

    Cdlt

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/06/2013, 09h04
  2. Réponses: 3
    Dernier message: 26/07/2011, 19h27
  3. Réponses: 3
    Dernier message: 29/06/2010, 10h24
  4. Est-ce que les fichiers .obj sont tous les mêmes?
    Par Bubonik software dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 30/12/2003, 21h04
  5. Réponses: 4
    Dernier message: 16/08/2003, 13h21

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