I. Introduction▲
L'article suivant nous présente comment créer pas à pas un job assez simple qui lancera une requête "select" sur une base de données Oracle, ensuite nous allons transformer ce job statique en un job dynamique dont la condition "where" changera selon les données entrées par l'utilisateur. Pour récupérer l'entrée de l'utilisateur on utilisera le composant "tMsgBox".
Avant de commencer je tiens à préciser qu'on n'abordera pas dans ce tutoriel le détail de création de job sous Talend vu que ça a été discuté dans cet autre tutorieltutoriel.
II. La source de données▲
La source de données a été créée par les deux scripts suivants :
CREATE
TABLE
CLIENT
(
CODE
VARCHAR2
(
100
BYTE
)
,
NOM VARCHAR2
(
100
BYTE
)
,
PRENOM VARCHAR2
(
100
BYTE
)
)
;
INSERT
INTO
CLIENT
VALUES
(
'cli001'
,
'ELHASSAK'
,
'MUSTAPHA'
)
;
INSERT
INTO
CLIENT
VALUES
(
'cli002'
,
'Esbaiss'
,
'MOUAD'
)
;
INSERT
INTO
CLIENT
VALUES
(
'cli003'
,
'zAkI'
,
'ANASS'
)
;
Finalement on se retrouve avec le résultat suivant :
Le job qu'on va créer exécutera la requête suivante sur notre table, il s'agit d'une sélection de toutes les colonnes de la table avec une condition sur la colonne "CODE", par exemple :
SELECT
code
, nom, prenom
FROM
CLIENT
WHERE
code
LIKE
'cli001'
III. Job Talend Open Studio▲
La création du job TOS va se dérouler suivant les étapes :
- création du job statique ;
- transformation du job en un job dynamique.
IV-A. Création du job statique▲
La création du job statique est assez rudimentaire. Après création d'un job, on glisse le schéma de notre table dans le designer, puis on choisit le composant "tOracleInput".
- Après on va sur les propriétés du composant "tOracleInput" et on modifie la requête SQL qu'il utilise.
- Ceci fait, on glisse un deuxième composant depuis la palette, cette fois-ci ce sera un composant "tLogRow" qui servira à afficher le résultat de la requête dans la fenêtre console. Ce composant est utilisé ici juste pour l'affichage. Après on lie ce dernier avec le "tOracleInput" avec un lien de type " main ".
- Notre job est fin prêt à l'emploi. On lance l'exécution et voilà le résultat :
IV-B. Transformation du job en un job dynamique▲
Maintenant on passe à la partie la plus intéressante, on voit bien que ce job en plus d'être simple, est aussi assez fermé, car il va toujours renvoyer le même résultat. Pour remédier à ce problème, on va le rendre dynamique.
Pour cela on doit changer la requête SQL et remplacer la valeur 'cli001' de la clause "where" par une entrée saisie par l'utilisateur final, cette entrée sera récupérée grâce au composant "tMsgBox".
Assez de blabla, passons maintenant à la pratique. On glisse un composant "tMsgBox" depuis la palette vers le designer de notre job.
On modifie les propriétés composant "tMsgBox" comme suivant :
- on met dans le champ titre "Saisie de code client" ;
- on choisit le type de boutons "Question" ;
- on saisit dans le champ question : "Veuillez saisir le code du client désiré :" ;
- finalement, on lie le composant "tMsgBox" au composant "tOracleInput" par un lien de type déclencheur "OnSubjobOk".
Notre job prend cette allure :
Il ne nous reste plus qu'à modifier la requête SQL du "tOracleInput", mais comment récupérer la valeur saisie par l'utilisateur ? C'est très facile, on peut la récupérer grâce au bout de code suivant :
"SELECT
CODE,
NOM,
PRENOM
FROM CLIENT
WHERE CODE LIKE '"
+
((
String)globalMap.get
(
"tMsgBox_1_RESULT"
))
+
"'"
En effet la valeur saisie par l'utilisateur final sera enregistrée par Talend automatiquement dans une variable globale propre à Talend qui porte le nom " GlobalMap" sous le nom de notre composant "tMsgBox" concaténé avec le mot "_RESULT" ,ici le nom du composant est "tMsgBox_1 " donc la variable utilisée pour le stockage sera "tMsgBox_1_RESULT", et comme la variable est de type "Object" alors il suffit de la caster vers un "String".
Voilà, le travail est terminé, on peut finalement tester notre job.
En le lançant, la fenêtre de saisie s'affiche, on tape une valeur puis on clique sur "Ok".
On voit bien que le résultat retourné dépend de notre saisie.
V. Conclusion▲
Merci d'avoir lu tout ce document :), j'espère qu'il a pu aider quelques-uns de ses lecteurs, au moins pour les débutants sur TOS. Ceci dit pour les gens qui souhaiteraient apprendre encore plus je leur conseille d'aller sur le site officiel de Talend où il y'a plusieurs autres tutos très intéressants, sans oublier le forum sur Developpez où vous pouvez poser toutes vos questions !
VI. Remerciements▲
Un grand merci à ClaudeLELOUPClaudeLELOUP pour la relecture orthographique.