Accéder au contenu principal Passer au contenu complémentaire

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

About this task

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

Exemple de Job utilisant les composants tMap, tMysqlInput, tFileInputDelimited et tLogRow.

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.

Procedure

  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 le tMap, consultez Présentation du fonctionnement du tMap et Mapping de flux de données.
  2. Déposez la colonne Names 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.
    Emplacement du bouton '...'.

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

    Vue d'ensemble de la boîte de dialogue Expression Builder.
  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 que votre sortie est correcte en renseignant dans le champ Value correspondant dans la zone Test, une valeur factice, par exemple Chuck Norris et en cliquant sur Test!. 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.
    Vue d'ensemble de la boîte de dialogue Expression Builder.

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

  9. Vérifiez à nouveau que la syntaxe de votre expression est correcte, en saisissant une valeur factice, 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 modifications.

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

    Éditeur de maps.

Results

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 :

Exemple de résultats.

Configurer des expressions pour plusieurs colonnes de sortie simultanément

About this task

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.

Exemple de Job utilisant les composants tFileInputDelimited, tMap et tLogRow.

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.

Procedure

  1. Dans l'éditeur de mapping, effectuez les mappings de l'entrée vers la sortie.
    Éditeur de maps.
  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.
    Bouton Apply Routine (Appliquer la routine) dans l'éditeur de mapping.
  3. Cliquez sur le bouton Apply Routine pour ouvrir la boîte de dialogue Expression Builder.
    Vue d'ensemble de 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.
    Champ Expression dans la boîte de dialogue Expression Builder.
  5. Cliquez sur OK pour fermer la boîte de dialogue Expression Builder.
  6. Sélectionnez les colonnes lastname et state dans la table de sortie de l'éditeur de mapping, cliquez-droit sur la sélection puis cliquez sur le bouton Apply Routine pour ouvrir la boîte de dialogue Expression Builder.
  7. Sélectionnez StringHandling dans la zone Categories, puis double-cliquez sur la fonction UPPERCASE dans la zone Functions pour obtenir la fonction StringHandling(${0}) dans le champ Expression.
    Champ Expression dans la boîte de dialogue Expression Builder.
  8. Cliquez sur OK pour fermer la boîte de dialogue Expression Builder.

Results

Les expressions de ces colonnes ressemblent à ceci :

Section Output (Sortie) de l'éditeur de mapping.
Les fonctions seront exécutées au cours du traitement du flux. La sortie de cet exemple s'affiche comme suit :
Exemple de résultats.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.