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 :

Comment définir ces conditions avec Talend


Sujet :

Développement de jobs

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 129
    Points : 46
    Points
    46
    Par défaut Comment définir ces conditions avec Talend
    Bonjour à tous,

    Je veux apporter des modificaitons sur une table donnée et plus précisémenet sur le champ x avec les conditions suivantes.

    if x== v1 remplacer par n1
    else if x==v2 remplacer par n2

    ça d'une part. D'autre part, je me demande si Talend peut me permettre de définir d'autres types de condtions tel que x match une expression reguliere (conditions sur les strings en géneral)


    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    il faut utiliser les expression ternaire car dans les champs il n'est possible d'avoir qu'une seul ligne de code.

    Test condition ? si vrai : si faux

    voilà

    Jeremie

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 129
    Points : 46
    Points
    46
    Par défaut
    Merci pour la réponse,

    ou est ce que je peux écrire cette condition, je suis vraiment débutante.
    Merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    dans tous champs de saisie : paramètre de composant mais surtout dans les zones d'expression du tMap.

    Jeremie

  5. #5
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 129
    Points : 46
    Points
    46
    Par défaut
    Hhhhhhhhhhhhhhhelp,
    j'ai trop essayé mais j'ai meme pas reussi à creer un tmap

  6. #6
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    Tu dois avoir un tDBInput (selon ton sgbd) qui fait un select de tes données. tu poses ton tMap, tu envoies tes données depuis ton tDBInput vers le TMap. Dans le tMAP, bouton en haut a roite, add output table, glisser-déposer des champs de gauche a droite. Dans la partie expression tu fais tes transformationset tu valides. Tu déposes ensuite un tDBOutput que tu aliemntes depuis ton tMap.

    les tutoriaux : http://www.talendforge.org/tutorials/menu.php

    dont : How to set up a Join link on a Job Design
    How to take advantage of the tMap component

    cdt,
    Pensez à la fonction Recherche

  7. #7
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 129
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    Mon probleme n'est pas encore résolu
    J'ai fait deux tables une en entree et une en sortie et un tmap qui les relie.
    la table d'input s'appelle table1 contient deux champ id et customer.
    Je veux ecrire la condition suivante avec:
    si id >3 alors customer de la deuxieme table sera mis à "field1"
    else customer sera mis à "field 2".

    Comment faire?


    Merci à vous

  8. #8
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    si id >3 alors customer de la deuxieme table sera mis à "field1"
    else customer sera mis à "field 2"
    Bonjour,

    Si ton ID est de type Int ou Integer il suffit d'ajouter ceci dans la colonne CUSTOMER de sortie du tMap. En supposant que le lien en entrée du tMap se nomme "row1".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (row1.id > 3)?row1.field1:row1.field2
    Sinon si ton ID est de type String :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Integer.parseInt(row1.id) > 3)?row1.field1:row1.field2
    Bonne continuation.
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

  9. #9
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 129
    Points : 46
    Points
    46
    Par défaut
    Merci pour votre réponse,
    field1 et field2 est une valeur determinée disons field1="Cristophe" et field2="Franc".
    ça reste toujours valable ce que vous m'avez propser?

  10. #10
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Il suffit de remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (row1.id > 3)?"Cristophe":"Franc"
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

  11. #11
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 129
    Points : 46
    Points
    46
    Par défaut
    J'ai essayé ça, voila ce que j'ai eu, le job que j'ai crée est JobForMe

    starting job JobForMe at 12:04 23/02/2009.
    Exception in component tMysqlOutput_1
    java.lang.NullPointerException
    at tp_project.jobforme_0_1.JobForMe.tMysqlInput_1Process(JobForMe.java:502)
    at tp_project.jobforme_0_1.JobForMe.runJobInTOS(JobForMe.java:876)
    at tp_project.jobforme_0_1.JobForMe.main(JobForMe.java:789)
    Job JobForMe ended at 12:04 23/02/2009. [exit code=1]



    C quoi le probleme?

  12. #12
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 129
    Points : 46
    Points
    46
    Par défaut
    Ok, c'est bon, j'ai ressayé et ça marché enfin.
    Merci à vous tous.

  13. #13
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NullPointerException
    Une variable est vide alors que tu fais un traitement dessus. Vérifie que toutes les valeurs des ID retournés sont bien NON NULL.

    Oups j'avais pas vu que tu avais trouvé le problème. Pense à mettre le post en [RESOLU]
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

  14. #14
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 14
    Points
    14
    Par défaut plus de 2 conditions
    Bonjour,
    Je me permet de poser ma question dans cette discussion, le sujet étant semblable.
    Mon problème est que je voudrais faire un if avec plus de 2 conditions, par exemple :
    si var1=1 ou var1=2, var2=a
    sinon
    si var1=3 ou var1=4, var2=b
    sinon, var2=c
    J'ai une table access en entrée, une table access en sortie, et un tMap pour faire la liaison entre les deux.
    Quelqu'un pourrait-il m'aider svp ?
    Merciii !

  15. #15
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    la syntaxe cond ? vrai : faux ne marche pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    si var1=1 ou var1=2 ? var2=a : var1=3 ou var1=4 ? var2=b : var2=c
    avec les syntaxes java qui vont bien
    Pensez à la fonction Recherche

  16. #16
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 14
    Points
    14
    Par défaut
    Bonsoir !
    Alors voici ce que j'ai écrit :
    (row1.col=="1")?:"deux vehicules"row1.col=="2")?:"deux vehicules" : (row1.col=="3")?:"deux vehicules" : row1.col=="4")?:"trois vehicules ou plus" row1.col=="5")?:"autre collision" row1.col=="7")?:"sans collision"
    mais ça ne fonctionne pas ...
    ça me met cette erreur :
    Nom : 2014-04-23_205754.jpg
Affichages : 11254
Taille : 77,9 Ko
    J'ai également remplacé les ":" entre chaque condition par des "ou" (||), mais ça ne marche pas non plus ...
    Merci !

  17. #17
    Membre régulier Avatar de DonkeyPuncher
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2013
    Messages : 56
    Points : 113
    Points
    113
    Par défaut
    Salut,
    Il y a un peu trop de ':' et à la fin tu dois mettre une dernière condition pour le SINON de la ternaire, j'ai mis NULL par exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    row1.col=="1"? "deux vehicules" : row1.col=="2" ? "deux vehicules" : row1.col=="3" ? "deux vehicules" : row1.col=="4" ? "trois vehicules ou plus" : row1.col=="5" ? "autre collision" : row1.col=="7" ? "sans collision" : null
    DP

  18. #18
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 14
    Points
    14
    Par défaut
    Bon déjà, merci, il n'y a plus d'erreur...
    Mais après vérification dans ma table de sortie, toutes les valeurs de ma colonne gp_col sont à NULL...

  19. #19
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    pour la forme
    il manque un dernier else pour une éventuelle valeur par défaut pour éviter le null
    var.obj=="n" c'est moche il vaut mieux écrire "n".equals(var.obj)

    pour le fond : est-ce que row1.col est bien un String ? problème de trim ?
    Pensez à la fonction Recherche

  20. #20
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 14
    Points
    14
    Par défaut
    Bonsoir !!

    Suite à une mauvaise manip ... j'ai dû tout recommencer ...
    J'ai vraiment l'impression de tout avoir fait comme la première fois pourtant j'ai une erreur...
    J'ai vraiment essayé de trouver d'où ça venait mais je n'ai pas trouvé ...
    Nom : capture.jpg
Affichages : 12070
Taille : 234,7 KoNom : capture.jpg
Affichages : 12070
Taille : 234,7 Ko
    Je n'ai pourtant fait qu'un mapping simple pour le moment... (colonne table source = colonne table cible)
    J'ai pensé à un problème avec ma connexion ODBC mais j'arrive à récupérer le schéma de mes tables.
    J'ai également vérifié que mes colonnes cibles étaient de même taille que mes sources ...
    Quelqu'un pourrait-il m'aider à trouver d'où peut venir mon problème ?


    Merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment définir des eventid avec EventLogAppender de log4net
    Par Kornoman dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 30/03/2011, 10h32
  2. Comment isoler ces lignes avec les expressions régulières?
    Par Benka dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 01/07/2010, 18h10
  3. comment simplifier ces conditions
    Par Attila54 dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 11/02/2010, 15h18
  4. Comment définir une condition en CSS en fonction du navigateur
    Par k-koo dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 13/01/2008, 11h39
  5. Réponses: 2
    Dernier message: 30/11/2006, 22h30

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