Calendar
December 2017
M T W T F S S
« Dec    
 123
45678910
11121314151617
18192021222324
25262728293031
ADBI | Integration d’un Batch Talend dans une application J2EE
13101
post-template-default,single,single-post,postid-13101,single-format-link,ajax_fade,page_not_loaded,,strata,wpb-js-composer js-comp-ver-4.3.4,vc_responsive

Integration d’un Batch Talend dans une application J2EE

17:50 26 November in Blog
1 Comment

Integration d’un Batch Talend dans une application J2EE

Ce court tutoriel traite de l’intégration (l’appel)  d’un batch Talend dans une application type Java/J2EE.

Pour commencer nous allons voir comment exporter un projet Talend en Batch

Pour  cela:

1 – Lancer Talend et ouvrir le projet souhaité.

2 – Au niveau de l’explorateur (repository) sélectionner le job/répertoire/Projet complet que nous souhaitons exporter.

 

img1

 

3 – Faire un clic droit puis cliquer sur exporter le job (cf screenshot ci-dessus)

Comme vous pouvez le voir sur l’écran ci-dessous il existe plusieurs formats d’export possibles.

  • Autonomous Job
  • Axis WebService (WAR)
  • AxisWebService (ZIP)
  • JBoss ESB
  • Petals ESB
  • OSGI Bundle For ESB

Je ne m’attarderais pas ici à décrire chacun des types d’export. Vous pouvez vous référer à la documentation Talend pour cela.

Nous utiliserons ici le type d’export « Autonomous Job ».

Dans le menu de gauche vous pouvez sélectionner les jobs que vous voulez exporter

 

im2

 

Le paragraphe ci-dessous liste et décris l’ensemble des options proposées

  • Interpréteur de commande :

Cette option est obligatoire dans le cadre de l’export d’un job autonome. Elle permet de tester l’appel du job généré, via des lignes de commandes, ou encore de lancer le job via un batch Windows ou Unix que l’on peut pourquoi pas horodater.( cf http://www.talendbyexample.com/talend-job-deployment-shell-launchers-reference.html).

  • Scripts de contextes :

Si l’option est cochée Talend va générer pour chacun des jobs les scripts contenant les contextes que nous avons définis au préalable pour CHACUN DES  JOBS.

Par défaut chacun des jobs contient un contexte nommé défaut.

Si vous n’avez pas de variables de contexte l’option n’est pas utile.

  • Application de contexte aux jobs fils :

Selon votre besoin vous aurez peut-être de transmettre des contextes des jobs parents aux jobs fils. Si vous utilisez des Séquenceurs par exemple l’option est obligatoire.

  • Ecraser les valeurs de paramètres :

Cette option est à utiliser avec précaution. Elle permet d’écraser les contextes définis en amont dans le projet.Ce dernier sera alors exporter avec des variables VIDES.
Pour lancer le jobs il faudra préciser les nouveaux contexte lors de leurs appels via le commandLine !

  • Sources Java :

Les explications quant à ces options restent floues. Je conseil de laisser l’option cocher.

  • Builds Scripts :

Permet d’intégrer des Builds de type maven ou Ant au projet exporté. Je n’entrerai pas en détails dans ce sujet.

 

Nous pouvons maintenant cliquer sur exporter !

Un fichier zip sera généré au chemin indiqué Il faudra alors le décompresser (sauf si l’option automatique de décompression est déjà coché)

 

APERCU d’un job autonome exporté

Voici un exemple d’architecture d’export :

./SimpleJob
./SimpleJob/SimpleJob_run.bat
./SimpleJob/SimpleJob_run.sh
./SimpleJob/items
./SimpleJob/items/talendbyexample
./SimpleJob/items/talendbyexample/code
./SimpleJob/items/talendbyexample/code/routines
./SimpleJob/items/talendbyexample/code/routines/system
./SimpleJob/items/talendbyexample/code/routines/system/DataOperation_0.1.item
./SimpleJob/items/talendbyexample/code/routines/system/DataOperation_0.1.properties

./SimpleJob/items/talendbyexample/code/routines/system/TalendString_0.1.item
./SimpleJob/items/talendbyexample/code/routines/system/TalendString_0.1.properties
./SimpleJob/items/talendbyexample/talend.project
./SimpleJob/simplejob_0_1.jar
./jobInfo.properties
./lib
./lib/dom4j-1.6.1.jar
./lib/systemRoutines.jar
./lib/userRoutines.jar

 

 4 – Intégration J2EE

 

L’étape suivante consiste à l’appel du batch dans l’application J2EE et en la récupération du code de retour de ce batch.

Nous allons procéder en deux étapes :

a) La première étape est de créer une classe Java ou l’on définit une constante contenant le chemin du batch Talend.

Exemple :

public static final String PATH_SCRIPT_ALIM = “C:\\staffme\\JS_alim_globale_0.1\\JS_alim_globale\\JS_alim_globale_run.bat”

Attention aux doubles “\\” , ils sont nécessaire lorsque le répertoire Windows contient des caractères spéciaux ou des espaces.

b) Il faut ensuite appeler le batch et l’exécuter dans l’application J2EE.

Voici un exemple de code :

// Script d’alimentation

//appel de la constante contenant le path du batch

String command = ActionConstants.PATH_SCRIPT_ALIM;

Process child;

//récupération et logarisation des erreurs

try {

child = Runtime.getRuntime().exec(command);

child.waitFor();

} catch (IOException e) {

errors = true;

addErrorMessage(getText(ActionLabelConstants.FILEUPLOAD_ERROR_ALIMENTATION_NOT_FOUND));

log.error(getText(ActionLabelConstants.FILEUPLOAD_ERROR_ALIMENTATION_NOT_FOUND));

} catch (InterruptedException e) {

errors = true;

addErrorMessage(getText(ActionLabelConstants.FILEUPLOAD_ERROR_ALIMENTATION));

log.error(getText(ActionLabelConstants.FILEUPLOAD_ERROR_ALIMENTATION));

}

 

 

 

Mehdi SI-MOHAMMED

msimohammed@adbi.fr

Consultant Business Intelligence / Big Data, Certifié Talend data Integration

1Comment

Post A Comment