Ce tutoriel va nous présenter comment réaliser un job, avec le fameux
ETL Talend Open Studio, qui nous permettra de lancer une MACRO Excel.
1. Introduction
L'article suivant présente comment réaliser pas à pas un job
Talend qui va créer un fichier Excel simple rempli à partir d'un fichier
texte. Ce fichier résultat sera ensuite mis en forme grâce à une MACRO
Excel.
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
tutoriel, ni la création de la MACRO Excel puisque ce n'est pas le but.
2. La source de données
La source de données est un simple fichier texte.
Voici un aperçu de ce dernier :
Le job qu'on va créer lira les données de ce fichier puis les enregistrera dans un fichier Excel.
3. La destination de données
La destination de données est un fichier Excel normal, sauf que ce dernier sera mis en forme avec une MACRO.
Il ressemblera à ça avant la mise en forme :
et à ça, après la mise en forme, c'est-à-dire après l'exécution de la MACRO :
4. Job Talend Open Studio
La création du job TOS va se dérouler suivant ces étapes :
- création du job qui va remplir le fichier Excel ;
- mise en forme du fichier Excel en lançant la MACRO.
4.1 Création du job qui va remplir le fichier Excel
La création du job de remplissage du fichier Excel est ce
qu'il y a de plus simple. Après création d'un job, on glisse un
"tFileInputDelimited" dans le designer, puis un "tFileOutputExcel" et on
lie le tout avec un lien de type "Main".
Après, on accède aux propriétés du composant "tFileInputDelimited" pour
spécifier ses paramètres (schéma, nom du fichier, séparateur de
lignes…), on se retrouve finalement avec ça :
Ceci fait, on passe aux paramètres du "tFileOutputExcel", pour obtenir cela :
Notre job est fin prêt à l'emploi. On lance l'exécution, notre fichier
Excel est bien rempli, il ne nous reste plus qu'à le mettre en forme.
4.2 Mise en forme du fichier Excel en lançant la MACRO
Maintenant, on passe aux choses sérieuses en mettant en forme notre fichier Excel.
Pour cela, voici la MACRO qui a été utilisée. Elle a été
enregistrée sur un fichier "MonVBScript.vbs". On ne va pas s'arrêter sur
son contenu car ce n'est pas pertinent pour notre tutoriel :
Dim objXL
SET objXL =
CreateObject
("
Excel.Application
"
)
WITH objXL
.Workbooks.Open ("
C:\Users\ELHASSMU\Desktop\tuto
Talend\MonExcel.xls
"
)
.Range
("
A1:C1
"
).Select
.Selection.Font.Bold =
True
.Range
("
A2:A7
"
).Select
.Selection.Font.Bold =
True
.Range
("
B2:B7
"
).Select
.Selection.Font.Italic =
True
.Range
("
A1:C1
"
).Select
.Range
("
A2:C7
"
).Select
.Columns
("
C:C
"
).ColumnWidth =
21
.43
.Columns
("
B:B
"
).ColumnWidth =
16
.29
.Range
("
A1:C7
"
).Select
.Selection.Font.Size =
12
.Selection.Font.Size =
14
.Selection.Font.Size =
16
.Range
("
A1:C1
"
).Select
.Range
("
A2:C7
"
).Select
.Columns
("
C:C
"
).Select
.Application.Quit
END WITH
SET objXL =
Nothing
On modifie notre job en ajoutant un troisième composant : un "tJava".
Comme l'exécution de la MACRO devrait se faire normalement après la fin
du remplissage du fichier, on va alors lier le "tFileInputDelimited"
avec le "tJava" par un lien "OnSubJobOk", ce qui nous donne ceci :
Voilà ! C'était ça l'astuce : lancer notre VBScript avec du code JAVA qui ressemblerait à ça :
Runtime.getRuntime().exec("cmd /c start C:\\Users\\ELHASSMU\\Desktop\\tuto Talend\\MonVBScript.vbs");
Finalement, on lance l'exécution de notre job. Si tout se passe bien, notre console affichera le message suivant :
Et une petite fenêtre s'ouvrira pour nous demander si on veut ou non sauvegarder les changements apportés au fichier Excel :
On clique sur "Oui", bien sûr, puis on ouvre notre fichier Excel pour
voir que la MACRO s'est bel et bien exécutée et que la mise en forme est
en place :
5. Conclusion
Voilà c'est tout pour aujourd'hui, j'éspère que ce que vous avez lu ici vous aidera dans votre travail sur Talend en attendant je vous donne rendez-vous très prochainement pour de nouveaux tutoriels sur Talend Open Studio.
Merci d'avoir lu tout ce document et surtout n'hésitez pas à poser toutes vos questions ici et je vous répondrai aussitôt que possible.
ETL sous talend
ReplyDeletemerci pour tous les tutoriels que vous avez rédigés.
ReplyDelete