Utilisation des expressions - 6.4

Talend Open Studio for Data Integration Guide utilisateur

EnrichVersion
6.4
EnrichProdName
Talend Open Studio for Data Integration
task
Création et développement
EnrichPlatform
Studio Talend

Toutes les déclarations d'expressions (Input, Var ou Output) et de filtres peuvent être visualisées et modifiées directement dans les champs des expressions, dans l'éditeur d'expression.

Accéder à l'Expression editor

Cet éditeur fournit le confort d'une fenêtre dédiée pour écrire des fonctions ou des commandes de transformation.

Vous pouvez écrire les expressions dont vous avez besoin pour la transformation de données directement dans la vue Expression editor située dans la partie inférieure de l'Expression editor.

Pour ouvrir la vue Expression editor, procédez comme suit :

  1. Double-cliquez sur le composant tMap dans votre Job pour ouvrir le Map Editor.

  2. Dans la partie inférieure de l'éditeur, cliquez sur l'onglet Expression editor afin d'ouvrir la vue correspondante.

    Note

    Pour éditer une expression, sélectionnez-la dans le panneau Input puis cliquez sur l'onglet Expression editor et modifiez l'expression comme nécessaire.

  3. Saisissez le code Java selon vos besoins. L'expression correspondante dans le panneau output est synchronisée.

Note

Référez-vous à la documentation Java adéquate pour plus d'informations concernant les fonctions et les opérations.

Créer du code à l'aide de l'Expression Builder

Pour certains Jobs, il est nécessaire de rédiger du code afin de paramétrer les composants. Dans la vue Component de certains composants, une fenêtre [Expression Builder] peut vous aider à rédiger ce code (en Java), connu sous le nom d'expressions.

À l'aide de l'éditeur d'expressions du tMap, vous pouvez modifier l'expression pour une colonne d'entrée, une colonne de sortie ou une variable, ou modifier les expressions pour plusieurs colonnes de sortie en même temps.

Modifier des expressions individuelles

L'exemple suivant vous montre l'utilisation de l'Expression Builder pour modifier deux expressions individuelles.

Dans cet exemple, deux flux d'entrée sont connectés au tMap.

  • Un premier flux DB input, contenant une liste de personnes dont le nom et le prénom sont séparés par un espace.

  • Un autre flux File input, contenant la liste des états des États-Unis, en minuscule.

Dans le [Map Editor], utilisez l'Expression builder pour : 1) Remplacer l'espace entre le nom et le prénom par un tiret souligné ; 2) Mettre en majuscules le nom des états.

  1. Dans le [Map Editor], créez la jointure Inner Join correspondante pour créer le mapping de référence.

    Pour plus d'informations concernant l'utilisation du tMap, consultez Gestion des métadonnées.

  2. Déposez la colonne Name du flux d'entrée principal Main (row1) de la zone Input dans la zone Output, et la colonne State du flux d'entrée secondaire Lookup (row2) vers la même zone Output.

  3. Cliquez sur le premier champ Expression (row1.Name) puis cliquez sur le bouton [...] qui s'affiche à côté de l'expression.

    La fenêtre [Expression Builder] s'ouvre.

  4. Dans la liste Category, sélectionnez l'action que vous souhaitez effectuer. Pour cet exemple, choisissez StringHandling, puis sélectionnez la fonction EREPLACE dans la liste Functions.

  5. Dans la zone Expression, collez row1.Name à la place du texte, pour obtenir : StringHandling.EREPLACE(row1.Name," ","_"). Cette expression remplacera l'espace par un tiret souligné dans la chaîne de caractères fournie.

    Notez que les fonctions CHANGE et EREPLACE de la catégorie StringHandling sont utilisées pour substituer toutes les sous-chaînes de caractères correspondant à l'expression régulière donnée dans l'ancienne chaîne de caractères, par le remplacement donné et retourner une nouvelle chaîne de caractères. Leurs trois paramètres sont :

    • oldStr : l'ancienne chaîne de caractères.

    • newStr : l'expression régulière avec laquelle effectuer la correspondance.

    • replacement : la chaîne de caractères à substituer pour chaque correspondance.

  6. Vérifiez votre code en renseignant le champ Value correspondant dans la zone Test, par exemple saisissez Chuck Norris puis cliquez sur Test! et vérifiez que les changements ont bien été effectués, ici : Chuck_Norris

  7. Cliquez sur OK pour valider et répétez la même opération pour la deuxième colonne (State).

  8. Dans le tMap de sortie, sélectionnez l'expression row2.State et cliquez sur le bouton [...] pour ouvrir de nouveau l'Expression builder.

    Cette fois, la fonction StringHandling à utiliser est UPCASE. L'expression complète est : StringHandling.UPCASE(row2.State).

  9. Vérifiez que la syntaxe de votre code est correcte, en saisissant par exemple indiana dans le champ Value de la zone Test. Cliquez sur Test! et le résultat affiché est INDIANA. Cliquez sur OK pour valider.

    Les deux expressions sont maintenant affichées dans le champ tMap Expression.

Ces changements seront reportés tout au long du processus et le flux de sortie est affiché ci-dessous. La sortie de cet exemple s'affiche comme suit :

Configurer des expressions pour plusieurs colonnes de sortie simultanément

Le tMap vous permet de définir le comportement de transformation de plusieurs colonnes de sortie en même temps.

En utilisant un Job simple de transformation, l'exemple suivant vous montre comment définir les expressions sur plusieurs colonnes, à la manière d'un lot, dans le tMap.

Voici le contenu du fichier CSV d'entrée utilisé dans cet exemple :

id;firstname;lastname;city;state
1; Andrew;Adams;Madison; Rhode Island
2;Andrew; Garfield; Saint Paul;Colorado
3; Woodrow;   Eisenhower    ; Juneau; New Hampshire
4;Woodrow; Jackson;Denver;Maine
5; Lyndon;Buchanan; Pierre; Kentucky
6;  Bill;Tyler; Helena; New York
7;George;Adams;Oklahoma City    ;Alaska
8;Ulysses; Garfield;Santa Fe;Massachusetts
9; Thomas;Coolidge  ;Charleston;   Mississippi
10;John;Polk;   Carson City;  Louisiana

Dans cet exemple, dans toutes les colonnes de sortie de type String, les espaces en début et fin de chaîne seront supprimés et les noms de famille et d'États seront passés en majuscules.

  1. Dans l'éditeur de mapping, effectuez les mappings de l'entrée vers la sortie.

  2. Sélectionnez les colonnes de type String dans la table de sortie, respectivement firstname, lastname, city et state dans cet exemple, puis cliquez-droit sur la sélection, afin d'afficher le bouton Apply Routine.

  3. Cliquez sur le bouton Apply Routine pour ouvrir la boîte de dialogue [Expression Builder].

  4. Sélectionnez StringHandling dans la zone Categories, puis double-cliquez sur la fonction TRIM dans la zone Functions, pour obtenir StringHandling.TRIM(${0}) dans le champ Expression.