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

Créer un flux Lookup pour effectuer une jointure sur des données complémentaires

Basé sur le scénario précédent, ce scénario explique comment utiliser un flux Lookup (de référence) afin d'effectuer une jointure sur des données souhaitées dans le fichier XML USState.xml du flux principal. Un autre tFileInputXML est ajouté au Job pour charger des données à partir du fichier lookup USState.xml vers le composant tXMLMap de la famille Processing.

Le contenu du fichier XML USState.xml se présente comme suit :

<?xml version="1.0" encoding="ISO-8859-15"?>
      <USStates>
      <States>
      <idState>1</idState>
      <LabelState>Alabama</LabelState>
      </States> 
      <States>
      <idState>2</idState>
      <LabelState>Connecticut</LabelState>
      </States>
      <States>
      <idState>3</idState>
      <LabelState>Ohio</LabelState>
      </States>  
      <States>
      <idState>4</idState>
      <LabelState>Wyoming</LabelState>
      </States>
      <States>
      <idState>5</idState>
      <LabelState>Hawaii</LabelState>
      </States>
      </USStates>

Ajouter et relier un autre composant d'entrée

Procedure

  1. Dans le Studio TalendStudio, ouvrez le Job utilisé dans le scénario précédent afin de l'afficher dans l'espace de modélisation graphique.
  2. Ajoutez un autre tFileInputXML au Job en saisissant son nom dans l'espace de modélisation graphique ou en le déposant depuis la Palette. Nommez ce composant USStates pour mieux identifier sa fonction.
  3. Reliez le tFileInputXML nommé USStates au tXMLMap à l'aide d'un lien Row > Main. Le lien est automatiquement modifié en flux Lookup.

Configurer le flux de référence

Procedure

  1. Double-cliquez sur le composant tFileInputXML nommé USStates pour ouvrir sa vue Basic settings.
  2. Cliquez sur le bouton [...] à côté du champ Edit schema et dans la boîte de dialogue Schema, définissez le schéma en ajoutant une colonne USState de type Document.
  3. Cliquez sur OK pour valider les modifications et fermer la boîte de dialogue. Une ligne est automatiquement ajoutée à la table Mapping.
  4. Dans le champ File name/Stream, parcourez votre système jusqu'au fichier XML source contenant les données supplémentaires, ou bien saisissez son chemin d'accès entre guillemets doubles. Dans ce scénario, le fichier est E:/USStates.xml.
  5. Dans le champ Loop XPath query, saisissez une expression XPath entre guillemets doubles pour spécifier le nœud sur lequel la boucle doit se baser. Dans ce scénario, saisissez /, ce qui signifie effectuer une requête de recherche depuis la racine.
  6. Dans la colonne XPath query de la table Mapping, spécifiez entre guillemets doubles les champs sur lesquels effectuer la requête. Dans ce scénario, saisissez ., ce qui signifie que tous les champs du nœud (racine) sont extraits.
  7. Dans la colonne Get Nodes de la table Mapping, cochez la case. Cela va récupérer la structure XML des données de type Document.

Configurer la transformation XML avec lookup

Procedure

  1. Double-cliquez sur le tXMLMap pour ouvrir son éditeur Map Editor.
    Notez que la zone d'entrée est déjà remplie par les tables d'entrée définies et que la table supérieure est la table principale d'entrée (flux Main).
  2. Dans la table d'entrée row2, cliquez-droit sur le nœud USState et, dans le menu contextuel, sélectionnez Import From File. Dans la boîte de dialogue qui s'ouvre, parcourez votre système jusqu'au fichier XML source duquel importer la structure d'arborescence XML utilisée par les donnée reçues par le tXMLMap. Dans ce scénario, le fichier XML source est USState.xml, le fichier des données d'entrée du tFileInputXML nommé USStates.
  3. Dans l'arborescence XML importée, cliquez-droit sur le nœud States et, dans le menu contextuel, sélectionnez As loop element afin de le définir comme élément répétable.
  4. Dans la table principale d'entrée row1, cliquez sur le nœud idState et déposez-le, dans la colonne Exp.key de la ligne du nœud idState, dans la table lookup row2. Cela crée une jointure entre les deux tables d'entrée sur les données idState, parmi lesquelles le nœud idState du flux principal fournit la clé de référence (lookup key).
  5. Dans la table lookup d'entrée row2, cliquez sur le nœud LabelState et déposez-le sur le nœud customer dans la table de sortie Customer. Une boîte de dialogue s'ouvre.
  6. Dans cette boîte de dialogue, sélectionnez Create as sub-element of target node, puis cliquez sur OK. Un sous-élément LabelState est ajouté dans l'arborescence XML de sortie et mappé avec le nœud LabelState de la table lookup.
  7. Cliquez sur OK pour valider les mappings et fermer le Map Editor.

Démarrer le Job

Procedure

  1. Appuyez sur Ctrl+S afin de sauvegarder votre Job.
  2. Appuyez sur F6 pour l'exécuter.
    Comme affiché ci-dessus, les noms des États des États-Unis du fichier lookup dont les ID correspondent à ceux du fichier d'entrée principal sont ajoutés au flux de données et les informations combinées sont affichées dans la console.

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.