1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    mars 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : mars 2017
    Messages : 12
    Points : 9
    Points
    9

    Par défaut tmap avec plusieurs expression context

    Bonjour,
    Je suis un utilisateur occasionnel de Talend, je rencontre le problème suivant:
    Soit 3 variable en entrée
    var programme = 1
    var programme = 2
    var programme = 3
    Avec 3 context talend
    Context A, Context B, Context C .
    Je veux associer chaque enregistrement correspondant de mon fichier d'entrée a tel ou tel type d'enregistrement.
    if
    Var.Programme == 1 , context A
    else
    var programme == 2 context B
    else
    var programme == 3 context C
    j’essaie d'utiliser la notation ternaire : de la façon suivante
    (Var.Programme == 1 ) ? context.A : ( Var.Programme == 2 ? context.B : ( Var.Programme == 3 ? context.C :null ) )

    Mais cela ne fonctionne pas, j'ai raté quelque chose que je ne vois pas ?

    Merci pour votre aide

  2. #2
    Membre éprouvé Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    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 : 501
    Points : 987
    Points
    987

    Par défaut

    Bonjour,

    j’essaie d'utiliser la notation ternaire : de la façon suivante
    (Var.Programme == 1 ) ? context.A : ( Var.Programme == 2 ? context.B : ( Var.Programme == 3 ? context.C :null ) )

    Mais cela ne fonctionne pas, j'ai raté quelque chose que je ne vois pas ?
    C'est quoi ton erreur ?

    Peux-tu mettre la valeur null ? i.e. (Est-ce de type jav.lang.Integer ou int )
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    mars 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : mars 2017
    Messages : 12
    Points : 9
    Points
    9

    Par défaut

    Citation Envoyé par supergeoffrey Voir le message
    Bonjour,



    C'est quoi ton erreur ?

    Peux-tu mettre la valeur null ? i.e. (Est-ce de type jav.lang.Integer ou int )

    Bonjour,

    AU fait quand j'ai deux paramètres cela fonctionne très bien comme ceci
    (Var.Programme == 1 || Var.Programme == 2 ) ? context.salesforce_rt_account : context.salesforce_rt2_account

    si je rajoute un 3 eme paramètres comme ceci

    (Var.Programme == 1 ) ? context.salesforce_rt_account : ( Var.Programme == 2 ? context.salesforce_rt2_account : ( Var.Programme == 3 ? context.salesforce_rt3_account : null ) )

    les enregistrements sont intégrés dans ma base quelque soit le type de programm 1,2 ou 3 avec une valeur null

    voici le screen de mon tMap
    Nom : screen.png
Affichages : 38
Taille : 200,5 Ko

    Merci pour ton aidePièce jointe 259608

  4. #4
    Membre éprouvé Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    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 : 501
    Points : 987
    Points
    987

    Par défaut

    Plusieurs pistes
    Teste dans l'ordre que je te donne
    _____________________________


    Pourquoi le type de Programme est modifier entre ton entrée "In_in_porteur_de_carte" et tes variable temporaires ? Tu transformes gratuitement un entier en un double !
    Tu devrais rester sur un entier Nullable.
    Et ensuite je modifierai la valeur en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Var.Programme == null ? null :   Var.Programme.intValue() == 1 ? context.salesforce_rt_account :  Var.Programme.intValue()  == 2 ? context.salesforce_rt2_account :  Var.Programme.intValue()  == 3 ? context.salesforce_rt3_account : null
    _______________________________

    As-tu vérifier que tu as bien initialisé, et bien créé context.salesforce_rt3_account ?


    ________________________________

    Avant tu avais une valeur pour 1 et 2 et une autre pour les autres.
    On pourrait croire que tu n'utilisait jamais context.salesforce_rt_account
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    mars 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : mars 2017
    Messages : 12
    Points : 9
    Points
    9

    Par défaut

    Citation Envoyé par supergeoffrey Voir le message
    Plusieurs pistes
    Teste dans l'ordre que je te donne
    _____________________________


    Pourquoi le type de Programme est modifier entre ton entrée "In_in_porteur_de_carte" et tes variable temporaires ? Tu transformes gratuitement un entier en un double !
    Tu devrais rester sur un entier Nullable.
    Et ensuite je modifierai la valeur en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Var.Programme == null ? null :   Var.Programme.intValue() == 1 ? context.salesforce_rt_account :  Var.Programme.intValue()  == 2 ? context.salesforce_rt2_account :  Var.Programme.intValue()  == 3 ? context.salesforce_rt3_account : null
    _______________________________

    As-tu vérifier que tu as bien initialisé, et bien créé context.salesforce_rt3_account ?


    ________________________________

    Avant tu avais une valeur pour 1 et 2 et une autre pour les autres.
    On pourrait croire que tu n'utilisait jamais context.salesforce_rt_account
    Merci pour ton retour

    les enregistrements porteur de carte en entrée de fichier on un numuro de programme
    programme 1 corresp à la Société 1
    programme 2 corresp à la société 2
    programme 3 corresp a la société 3

    les sociétés 1 ,2 et 3 sont identifier avec un type d'enregistrements recordTypeid
    recordTypeId = context.salesforce_rt_account, context.salesforce_rt2_account,context.salesforce_rt3_account

    programme 1 ---> context.salesforce_rt_account --> société 1

    programme 2 ---> context.salesforce_rt2_account --> société 2

    programme 3 ---> context.salesforce_rt3_account --> société 3

    -d'ou la transformation
    -e context.salesforce_rt3_account est bien crée
    -Avant j'avais uniquement les valeur pour 1 et 2 et pour 2 société seulement.valeur 1 pour société 1 valeur 2 pour société 2 , je veux seulement ajouté une 3 société pour integration et c'est ça qui me pose souci

    je tien à dire que c'est la première fois que je bosse sur talend le programme que je suis en train modifier existe déjà et marche correctement, avant j'avais que ce code
    (Var.Programme == 1 || Var.Programme == 2 ) ? context.salesforce_rt_account : context.salesforce_rt2_account

    Cordialement

  6. #6
    Membre éprouvé Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    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 : 501
    Points : 987
    Points
    987

    Par défaut

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    (Var.Programme == 1 || Var.Programme == 2 ) ? context.salesforce_rt_account : context.salesforce_rt2_account

    ça voulait surement dire

    Si 1 ou 2
    Alors context.salesforce_rt_account
    Sinon context.salesforce_rt2_account

    C'est à dire que plusieurs programme peuvent être affectés à la même société.

    Essaye déjà d'énumerer les valeur de programme et fait le rapprochement leurs valeur à une société après.
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    mars 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : mars 2017
    Messages : 12
    Points : 9
    Points
    9

    Par défaut

    Merci pour ton aide supergeoffrey

    pour une raison que j'ignore a mon niveau ça fonctionne de cette façon

    (Var.Programme == 1 ) ? context.salesforce_rt_account( Var.Programme == 2 )?context.salesforce_rt2_account(Var.Programme == 3)?context.salesforce_rt3_account :
    null ) )

    Merci

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

Discussions similaires

  1. tMap avec plusieurs outPut sur la même table
    Par Slippropre dans le forum Développement de jobs
    Réponses: 7
    Dernier message: 19/12/2013, 16h03
  2. [Mathematica] Boucle DO avec plusieurs expressions
    Par Cjordan dans le forum Autres langages
    Réponses: 0
    Dernier message: 30/03/2011, 11h58
  3. Corps d'une fonction avec plusieurs expressions
    Par Ulrik18 dans le forum Scheme
    Réponses: 2
    Dernier message: 04/02/2011, 10h02
  4. Réponses: 2
    Dernier message: 04/01/2007, 10h37
  5. Regexp : sur expression avec plusieurs itération
    Par Yann F-FLYC dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/09/2006, 09h35

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