Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Kettle-Pentaho
Kettle-Pentaho Forum d'entraide Kettle et Pentaho (Kettle, Pentaho Data Integrator)
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 31/01/2011, 16h50   #1
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 41
Points : 17
Points : 17
Par défaut Branchement conditionnel avec script java

Bonjour,

Je souhaite faire un test d'existence d'enregistrements sur une table et si elle est vide, ajouter une ligne. Pour cela, j'ai testé sans succès "Filtrage lignes" après avoir compté le nb lignes : l'ajout de ligne est fait dans tous les cas. Puis "Branchement conditionnel" avec script java au préalable mais je ne parviens pas à récupérer ma variable true/false de résultat.

Avez-vous une idée de ce qu'il faudrait faire ?
Ci-joint ma transformation en fichier XML.

Merci.
Fichiers attachés
Type de fichier : xml initialisation tracejob.xml (16,8 Ko, 6 affichages)
remys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 09h20   #2
Invité de passage
 
Inscription : janvier 2011
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 6
Points : 3
Points : 3
Bonjour,

Si j'ai bien compris le besoin, il me semble que le passage par un script n'est pas forcement nécessaire. Le résultat d'un count(*) permet de paramétrer le branchement conditionnel (cf. capture d'écran).

MT
Images attachées
Type de fichier : gif kettle001.gif (23,7 Ko, 23 affichages)
Major Tom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 09h42   #3
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 41
Points : 17
Points : 17
Bonjour,

Merci pour votre réponse.
C'est en effet la première chose que j'ai essayé, je ne l'ai pas mentionné mais j'ai un message d'erreur cf copie d'écran :

I can't convert the specified value to data type : 0

La différence est que l'écran de branchement n'est pas le même que le votre, car j'utilise la version 3.1.0-RC1. L'étape précédente (avec count(*) ) me donne un champs "nb_lignes" que je récupère et utilise mais qui pose problème en terme de "type" car il manque cette info à paramétrer dans mon écran.

Quelle est votre version ?
Images attachées
Type de fichier : jpg ecran erreur.JPG (81,2 Ko, 10 affichages)
remys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 10h52   #4
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 41
Points : 17
Points : 17
Par défaut Autre piste...

J'ai trouvé où spécifier le type "integer" dans le composant mais le résultat est le même : dans tous les cas, les 2 taches suivantes s'executent. En effet, ce composant ne sert qu'à distribuer les lignes selon une condition, et non faire une évaluation pour faire une autre étape. Je vais essayer de faire un job plutôt qu'une transformation en passant par une première étape avec une variable, à tester ensuite, bref tout un programme !
remys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 13h37   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 6
Points : 3
Points : 3
Citation:
Envoyé par remys Voir le message
[..]
La différence est que l'écran de branchement n'est pas le même que le votre, car j'utilise la version 3.1.0-RC1. L'étape précédente (avec count(*) ) me donne un champs "nb_lignes" que je récupère et utilise mais qui pose problème en terme de "type" car il manque cette info à paramétrer dans mon écran.

Quelle est votre version ?
J'utilise la version 4.1.0.

Et sinon, concernant votre pb, il semblerait qu'il s'agisse d'une anomalie liée à votre version de PDI.
Convertir la valeur du count(*) en texte devrait améliorer les chose (cf. commentaire en bas de cette page).

MT
Major Tom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 14h35   #6
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 41
Points : 17
Points : 17
Par défaut Solution trouvée !

Finallement je me suis afranchie de tous ces composants, qui ne répondent pas à mon besoin, en traitant ce cas directement en sql (Execution de script : insert avec condition). C'est simple et efficace, ça marche à coup sûr ! Merci en tout cas pour votre aide.
remys est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h50.


 
 
 
 
Partenaires

Hébergement Web