Dérouler une boucle - 7.3

Guide d'utilisation de Talend Data Mapper

Version
7.3
Language
Français
Product
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement > Création de Jobs
Déroulez une boucle pour créer un élément séparé ne faisant pas d'itération.

Avant de commencer

Vous avez créé une map avec une structure d'entrée et de sortie. Dans cet exemple, vous pouvez utiliser Other Projects (Autres projets) > Examples (Exemples) > Structures > Recursive > Component en entrée et Other Projects (Autres projets) > Examples (Exemples) > Structures > CSV > FlatComponents en sortie.

Pourquoi et quand exécuter cette tâche

Dans cet exemple, la structure d'entrée comprend un élément Component contenant une boucle SubComponents récursive. Dans la sortie, la boucle SubComponents doit être une boucle simple, du même niveau que Components.

Cette map est disponible dans Other Projects (Autres projets) > Examples (Exemples) > Maps > Looping > LoopSkipLevel.

Procédure

  1. Dans la structure d'entrée, cliquez-droit sur la boucle SubComponents et cliquez sur Expand Recursive Elements. Cliquez-droit dessus à nouveau et cliquez sur Expand All pour afficher ses enfants.
    Vous pouvez répéter les mêmes étapes sur les éléments SubComponents enfants pour afficher autant de niveaux que nécessaire.
  2. Dans la structure de sortie, cliquez-droit sur la boucle Components et cliquez sur Unroll From Loop.
    Cela crée un élément Components n'itérant pas et tous ses enfants.
  3. Glissez l'élément d'entrée Component sur la sortie Components (Unrolled from Loop).
    Les éléments du même nom dans les deux structures sont automatiquement mappés.
  4. Glissez l'entrée SubComponents sur la sortie Components[2].
    Les éléments sont mappés et une fonction SimpleLoop est ajoutée à l'élément de boucle de sortie.
  5. Cliquez sur l'élément de sortie Row, puis déposez une fonction FixedLoop depuis l'onglet Functions et déposez-la dans son onglet Loop.
    L'élément Row est une boucle et nécessite une expression d'itération. Cependant, puisque l'entrée Component n'effectue pas d'itération, vous n'avez pas besoin de plusieurs occurrences de Row dans la sortie. La fonction FixedLoop indique le nombre d'occurrences à retourner (par défaut, la valeur est 1).

Résultats

Les boucles sont mappées. Vous pouvez utiliser le bouton Test Run pour voir la sortie, basée sur le fichier échantillon d'entrée. Dans cet exemple, la sortie se présente comme suit :
<FlatComponents>
  <Row>
    <Components>
      <Id>1</Id>
      <PartNumber>45I1122</PartNumber>
      <Quantity>1</Quantity>
      <Description>Main Component</Description>
    </Components>
    <Components>
      <Id>102</Id>
      <PartNumber>12ZSSS</PartNumber>
      <Quantity>5</Quantity>
      <Description>Door Assembly</Description>
    </Components>
    <Components>
      <Id>302</Id>
      <PartNumber>12IQWO</PartNumber>
      <Quantity>14</Quantity>
      <Description>Window Assembly</Description>
    </Components>
  </Row>
</FlatComponents>