tJavaFlex

Composants Talend Open Studio Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Open Studio for Data Quality
Talend Open Studio for Big Data
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Open Studio for Data Integration
task
Gouvernance de données
Qualité et préparation de données
Création et développement
EnrichPlatform
Studio Talend

Fonction

Le tJavaFlex permet de saisir du code personnalisé afin de l'intégrer dans le programme Talend. Avec le tJavaFlex, vous pouvez saisir les trois différentes parties du code Java (start, main et end) constituant un composant qui permet d'exécuter une opération souhaitée et non disponible dans les actuels composants Talend.

Objectif

Le tJavaFlex vous permet d'ajouter du code Java dans ses sections de code Start/Main/End.

Propriétés du tJavaFlex

Famille du composant

Custom Code

 

Basic settings

Schema et Edit Schema

Un schéma est une description de lignes, il définit le nombre de champs (colonnes) qui sont traités et passés au composant suivant. Le schéma est soit local (Built-In), soit distant dans le Repository.

Depuis la version 5.6, les modes Built-In et Repository sont disponibles dans toutes les solutions de Talend.

Cliquez sur Sync columns pour récupérer le schéma du composant précédent.

 

 

Built-in : Le schéma sera créé et conservé pour ce composant seulement. Voir également le Guide utilisateur du Studio Talend.

 

 

Repository : Le schéma existe déjà et il est stocké dans le Repository. Ainsi, il peut être réutilisé. Voir également le Guide utilisateur du Studio Talend.

Lorsque le schéma à réutiliser contient des valeurs par défaut, qui sont des entiers (integer) ou des fonctions (function), assurez-vous que les valeurs par défaut ne sont pas entourées de guillemets. Si c'est le cas, vous devez supprimer manuellement les guillemets.

Pour plus d'informations, consultez l'article Vérification des valeurs par défaut dans un schéma récupéré sur Talend Help Center (https://help.talend.com).

  

Cliquez sur Edit schema pour modifier le schéma. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir le schéma.

  • Change to Built-In property : sélectionnez cette option pour passer le schéma en mode Built-In et effectuer des modifications locales.

  • Update repository connection : sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs. Si vous souhaitez propager les modifications uniquement au Job courant, cliquez sur No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

 

Data Auto Propagate

Cochez cette case pour propager automatiquement les données au composant suivant.

 

Start code

Saisissez le code Java qui va être appelé lors de la phase d'initialisation.

 

Main code

Saisissez le code Java qui va être appliqué pour chaque ligne du flux.

 

End code

Saisissez le code Java qui va être appelé lors de la phase de clôture.

Advanced settings

Import

Saisissez le code Java permettant d'importer, si nécessaire, la librairie externe utilisée dans le champ Main code de l'onglet Basic settings.

 

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du composant.

Global Variables

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, si le composant a cette option.

Une variable Flow fonctionne durant l'exécution d'un composant. Une variable After fonctionne après l'exécution d'un composant.

Pour renseigner un champ ou une expression à l'aide d'une variable, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. A partir de cette liste, vous pouvez choisir la variable que vous souhaitez utiliser.

Pour plus d'informations concernant les variables, consultez le Guide utilisateur du Studio Talend.

Utilisation

Ce composant peut être utilisé en tant que composant de début, de milieu et de fin de Job, ainsi qu'en tant que sous-job à un seul composant.

Limitation

Il est nécessaire de connaître le langage Java.

Scénario 1 : Générer un flux de données

Ce scénario décrit un Job à deux composants dont le but est de générer un flux de trois lignes décrivant les différentes civilité : mademoiselle (Miss), madame (Mrs) et monsieur (Mr), et de les afficher dans la console.

Construire le Job

  1. Cliquez-glissez un composant tJavaFlex de la famille Custom Code et un composant tLogRow de la famille Logs & Errors dans le Job Designer.

  2. Connectez-les via un lien Row Main.

Configurer le composant tJavaFlex

  1. Double-cliquez sur le composant tJavaFlex pour paramétrer ses propriétés.

  2. Dans la liste Schema, sélectionnez le mode Built-in et cliquez sur le bouton [...] à côté du champ Edit schema pour décrire manuellement la structure des données à passer au composant suivant.

  3. Cliquez sur le bouton [+] pour ajouter deux colonnes : key de type Integer et value de type String.

  4. Cliquez OK pour valider les changements et fermer la boîte de dialogue.

  5. Dans les propriétés du tJavaFlex, cochez la case Data Auto Propagate pour propager automatiquement les données au composant suivant.

    Dans cet exemple, n'effectuez pas de transformation sur les données récupérées.

  6. Dans le champ Start code, saisissez le code qui sera exécuté lors de la phase d'initialisation.

    Ici, le code indique l'initialisation du composant tJavaFlex en affichant le message START et met en place la boucle et les variables utilisées par la suite dans le code Java :

    System.out.println("## START\n#");
    String [] valueArray = {"Miss", "Mrs", "Mr"};
    
    for (int i=0;i<valueArray.length;i++) {

  7. Dans le champ Main code, saisissez le code qui sera appliqué pour chaque ligne de données. Ici, l'objectif est de retourner chaque clé (key) avec sa valeur :

    row1.key = i;
    row1.value = valueArray[i];

    Avertissement

    Dans le champ Main code, "row1" correspond au nom du lien qui sort du tJavaFlex. Si vous renommez ce lien, vous devez modifier le code de ce champ.

  8. Dans le champ End code, saisissez le code qui sera exécuté lors de la phase de clôture. Ici, l'accolade ferme la boucle et le code indique la fin de l'exécution du tJavaFlex en affichant le message END :

    }
    System.out.println("#\n## END");

  9. Si nécessaire, assurez-vous que le schéma a bien été propagé au tLogRow en double-cliquant sur le composant et en cliquant sur le bouton [...] à côté de Edit schema.

Sauvegarder et exécuter le Job

  1. Enregistrez le Job en appuyant sur Ctrl+S.

  2. Exécutez le Job en appuyant sur la touche F6 ou en cliquant sur le bouton Run, dans l'onglet Run.

    La console affiche les trois civilités, ainsi que leur clés correspondantes.

Scénario 2 : Traiter des lignes de données avec le tJavaFlex

Ce scénario décrit un Job à deux composants générant des données de manière aléatoire, récupérant et traitant ces données ligne par ligne avec du code Java via le tJavaFlex.

Construire le Job

  1. Cliquez-glissez un composant tRowGenerator de la famille Misc et un composant tJavaFlex de la famille Custom Code dans le Job Designer.

  2. Connectez-les via un lien Row > Main.

Configurer le composant d'entrée

  1. Double-cliquez sur le composant tRowGenerator pour ouvrir son éditeur.

  2. Dans l'éditeur, cliquez sur le bouton [+] pour ajouter quatre colonnes : number, txt, date et flag.

  3. Définissez le schéma en paramétrant ces quatre colonnes conformément à la capture d'écran précédente.

  4. Dans la colonne Functions, sélectionnez la fonction [...] dans la liste de chaque colonne.

  5. Dans la colonne Parameters, saisissez 10 paramètres différents pour chaque colonne. Ces 10 paramètres correspondent aux données qui seront retournées de manière aléatoire lors de l'exécution du tRowGenerator.

  6. Cliquez sur OK pour valider vos changements et fermer l'éditeur.

Configurer le composant tJavaFlex

  1. Double-cliquez sur le composant tJavaFlex pour paramétrer ses propriétés.

  2. Cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent.

  3. Dans le champ Start code, saisissez le code qui sera exécuté lors de la phase d'initialisation. Ici, le code indique l'initialisation du composant tJavaFlex en affichant le message START et définit une variable qui sera utilisée par la suite dans le code Java :

    System.out.println("## START\n#");
    int i = 0;

  4. Dans le champ Main code, saisissez le code qui sera appliqué pour chaque ligne de données. Ici, l'objectif est d'indiquer le numéro de la ligne en partant de 0, puis afficher le numéro et le texte aléatoire que vous mettez en majuscules et la date aléatoire définis dans le tRowGenerator. Ensuite, créez une condition affichant si le statut est true (vrai) ou false (faux) et incrémentez le numéro de la ligne :

    System.out.print(" row" + i + ":");
    System.out.print("# number:" + row1.number);
    System.out.print (" | txt:" + row1.txt.toUpperCase());
    System.out.print(" | date:" + row1.date);
    if(row1.flag) System.out.println(" | flag: true");
    else  System.out.println(" | flag: false");
    
    i++;

    Avertissement

    Dans le champ Main code, "row1" correspond au nom du lien qui sort du tJavaFlex. Si vous renommez ce lien, il faut penser à modifier le code de ce champ.

  5. Dans le champ End code, saisissez le code qui sera exécuté lors de la phase de clôture. Ici, le code indique la fin de l'exécution du composant tJavaFlex en affichant le message END :

    System.out.println("#\n## END");

Sauvegarder et exécuter le Job

  1. Enregistrez votre Job en appuyant sur Ctrl+S.

  2. Appuyez sur F6 ou cliquez sur Run dans l'onglet Run pour l'exécuter.

La console affiche les données générées aléatoirement et modifiées à l'aide du code Java dans le tJavaFlex.