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 18/02/2011, 14h13   #1
Membre à l'essai
 
Inscription : septembre 2007
Messages : 61
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 61
Points : 22
Points : 22
Par défaut Routines a plusieurs Parametres

Bonjour,

Est il possible de faire une routines a plusieurs parametres, qui retourne deux valeurs?
Ensuite avec les deux valeurs, les lié a un fichier de sorti ?

Je n'arrive pas a comprendre comme faire la liaison entre les resultats de la routine et les champs du tableau
flash22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 14h29   #2
atb
Membre chevronné
 
Homme
Inscription : novembre 2004
Messages : 569
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Autre

Informations forums :
Inscription : novembre 2004
Messages : 569
Points : 696
Points : 696
Une piste à suivre l’utilisation du composant tJavaFlex

Au fait ta routine retourne une liste de valeurs (ou structure avec deux valeurs)?
Tu fais appel à ta routine dans le tjavaFlex dans le bloc start du genre :

Ma_structure var1= routine1(X,Y,Z) ;

Ensuite dans le bloc main, tu parcours ta liste de retour, ou les variables.

Pendant chaque itération tu affecte la valeur en cours à ton schéma de sortie (défini au niveau du composant) .Exemple :

Output_row.newColumn= var1[i] ;

Et tu lies ce composant avec un tFileOutput par exemple pour récupérer le flux main.

Si le retour de la routine n'est qu'une seule ligne je pense que tu peux utiliser le composant tJavaRow (Tu as des exemples dans Talend, dépose le sur le workdesign, sélectionne le et appuie sur F1)


A tester donc …
atb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 10h44   #3
Membre à l'essai
 
Inscription : septembre 2007
Messages : 61
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 61
Points : 22
Points : 22
Bonjour,

J'ai utilisé le composant tjavaflex, mais bizarrement il ne sauvegarde pas le code que je saisi.
est ce un bug de talend ou autre chose ?
car rien ne change si je recreer mon composant javaflex ou si je redemarre talend.

Citation:
Envoyé par atb Voir le message
Une piste à suivre l’utilisation du composant tJavaFlex

Au fait ta routine retourne une liste de valeurs (ou structure avec deux valeurs)?
Tu fais appel à ta routine dans le tjavaFlex dans le bloc start du genre :

Ma_structure var1= routine1(X,Y,Z) ;

Ensuite dans le bloc main, tu parcours ta liste de retour, ou les variables.

Pendant chaque itération tu affecte la valeur en cours à ton schéma de sortie (défini au niveau du composant) .Exemple :

Output_row.newColumn= var1[i] ;

Et tu lies ce composant avec un tFileOutput par exemple pour récupérer le flux main.

Si le retour de la routine n'est qu'une seule ligne je pense que tu peux utiliser le composant tJavaRow (Tu as des exemples dans Talend, dépose le sur le workdesign, sélectionne le et appuie sur F1)


A tester donc …
flash22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 11h29   #4
atb
Membre chevronné
 
Homme
Inscription : novembre 2004
Messages : 569
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Autre

Informations forums :
Inscription : novembre 2004
Messages : 569
Points : 696
Points : 696
Bizarre

Rajoute un espace à la fin du code dans le tjavaFlex puis sauvegarde ?
atb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 14h27   #5
Membre à l'essai
 
Inscription : septembre 2007
Messages : 61
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 61
Points : 22
Points : 22
J'ai le probleme avec TOS 4.0.2, mais cela ne se reproduit pas sur TOS 4.1.

Merci.

Bon alors j'ai essayer de comprendre pourquoi, sous TOS4.0.2 j'avais ce message d'erreur dont je ne savais pas d'ou c'est venu et comment le supprimer(ca m'interesse d'ailleur de le savoir pour une prochaine fois)
"les proprietes sont en lecture seule car cet objet est déja verouillé par un editeur"

Donc c'est a cause de cela que j'ai perdu la matinée, j'ai donc supprimer et refait le job.
Ca a marché quelques minutes et me revoila au point de depart, j'aurais preferé ne pas avoir a changer de version de Talend, mais la ca me semble bien genant

Citation:
Envoyé par atb Voir le message
Bizarre

Rajoute un espace à la fin du code dans le tjavaFlex puis sauvegarde ?
flash22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 18h15   #6
Membre à l'essai
 
Inscription : septembre 2007
Messages : 61
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 61
Points : 22
Points : 22
Bon apres avoir manipulé le composant tjavaflex et routines en effectuant les tutoriaux.
je ne comprends pas toujours la difference.
ensuite je n'arrive pas a trouver de solution a mon probleme

j'avais voulu faire une fonction qui retourne "1" ou "0" en fonction de deux champs de depart d'une table que j'aurais fournit en parametre. Pour remplir un nouveau champs dans la tlogRow.

dans le genre,

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
String Nom = "Fred"; // du champs 1
Sring Age = 23; // du champs 2
 
Public Static String maFonction ( Nom, Age )
{
     IF( Nom.equal("Fred") && Age > 20) {
            RETURN row1.nouveauChamps = "1";
    }
    else
    {
            RETURN row1.nouveauChamps = "0";
    }
}
Impossible de faire ca simplement ? peut etre avec le constructeur d'expression ?
flash22 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 09h10.


 
 
 
 
Partenaires

Hébergement Web