Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/12/2011, 14h46   #1
Invité régulier
 
Inscription : janvier 2011
Messages : 100
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 100
Points : 7
Points : 7
Par défaut Comment modifier une variable globale de contexte ?

Bonjour

J'ai initilisé ma varibale de contexte à l'aide d'un composant tFixedFlowInput. Je veux incrementer la valeur de cette variable dans des sous job et puis la recupérer dans d'autre sous JoB.
Comment je peux faire ça ? quel composant dois je utiliser pour incrémenter la varible (context.variable = context.variable + 5)?

Avez vous une idée ?
Avez vous utilisé ça avant ?
Merci d'avance
delilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 15h40   #2
Membre émérite
 
Homme Nicolas Saumande
Architecte Décisionnel
Inscription : février 2008
Messages : 693
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Saumande
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte Décisionnel

Informations forums :
Inscription : février 2008
Messages : 693
Points : 879
Points : 879
Bonjour,

A priori, tu modifie une variable de contexte de la même façon que tu l'as alimentée, avec un tContextLoad.

Ce n'est pas ce que tu as fait ?
DevNico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 16h55   #3
Membre du Club
 
Avatar de jnbarthas
 
Homme
Ingénieur développement logiciels
Inscription : août 2011
Messages : 49
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : août 2011
Messages : 49
Points : 64
Points : 64
Citation:
context.variable = context.variable + 5;
cette séquence peut être directement placée dans un composant de type tJava.
jnbarthas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 17h10   #4
Invité régulier
 
Inscription : janvier 2011
Messages : 100
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 100
Points : 7
Points : 7
Par défaut Re

Le probléme quand je fais directment contex.variable = context.variable +5 ça va prendre toujours la valeur initiale et l'incrémenter. Il ne prend pas en compte la modification de cette variable dans d'autres sous JOB.
J'ai essayé ça :

context.setProperty("varibale",Integer.toString(Integer.parseInt(context.getProperty("varibale"))+1));
et pour récupérer la variable je fais juste ça :context.getProperty("varibale")
mais ça ne prend pas les modifications;
Peut être y a une autre méthode ??
delilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 17h17   #5
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Essai avec les varibales globales au lieu d'utiliser les variable de contexte :

Ecriture :
Code :
globalMap.put("toto", monEntierAStocker);
Lecture :
Code :
(Integer)globalMap.get("toto")
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 17h24   #6
Invité régulier
 
Inscription : janvier 2011
Messages : 100
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 100
Points : 7
Points : 7
Par défaut re

mais je veux utiliser la variable dans mes sous JOB aussi,
delilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 17h32   #7
Invité régulier
 
Inscription : janvier 2011
Messages : 100
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 100
Points : 7
Points : 7
Par défaut Re

Quand j'ai utilisé la variable glabal
en initialisant la variable dans le job principal :
IF((Integer) globalMap.get("varibale") == NULL) globalMap.put("variable",0);
dans mes sous Job j'ai utilisé ça pour modifier la varibale :
globalMap.put("varibale", (Integer)globalMap.get("varibale")+1);ça me génére une erreur de NullPointerException, comme ci l'initisaliation de la variable n'a pas été prisé en compte .
delilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 09h14   #8
Membre émérite
 
Homme Nicolas Saumande
Architecte Décisionnel
Inscription : février 2008
Messages : 693
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Saumande
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte Décisionnel

Informations forums :
Inscription : février 2008
Messages : 693
Points : 879
Points : 879
Quand tu parles de sous jobs, ce sont des jobs différents que tu appelles à partir d'un autre job ?

Je crois bien que les variables globales ou de contextes sont spécifiques à un job. Tu n'a donc pas accès dans un job fils aux valeurs des variables définies dans le job père.

Pour échanger des valeurs entre les jobs fils et pères, il faut utiliser le passage de paramètre et éventuellement un tBufferOutput dans le job fils il me semble.
Il existe déjà des posts qui traitent de ce sujet.

Nicolas
DevNico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 09h24   #9
Invité régulier
 
Inscription : janvier 2011
Messages : 100
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 100
Points : 7
Points : 7
Par défaut Re

ce que j'avais bien compris pour une variable de contexte glable, on l'inialise au début (dans le job principal dans le preJOB) aprés dans les sous le job je peux la modifier (set Proproprety ..)et je peux aprés dans un autre sous job recupérer la derniere modification que j'ai faite.
delilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h16.


 
 
 
 
Partenaires

Hébergement Web