Scinder 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
Last publication date
2023-01-09

Scindez une boucle en deux boucles séparées.

Avant de commencer

Vous avez créé une map avec une structure d'entrée et de sortie. Cet exemple utilise la même map que dans Dérouler une boucle.

Pourquoi et quand exécuter cette tâche

Dans cet exemple, vous avez mappé l'élément d'entrée Component et vous souhaitez inclure dans votre structure d'entrée deux boucles récursives SubComponents au même niveau que Components.

Procédure

  1. Si vous utilisez la map créée dans l'exemple précédent, cliquez-droit sur l'élément de sortie Components[2] et cliquez sur Remove Expressions (Mappings).
  2. Dans la structure d'entrée, développez les boucles SubComponents récursives pour afficher deux niveaux de boucles avec leurs enfants.
    Votre map doit ressembler à ceci :
  3. Cliquez-droit sur la boucle Components[2] et sélectionnez Split Loop.
    Cela crée une boucle identique au même niveau.
  4. Déposez la première boucle d'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. Glissez la boucle enfant d'entrée SubComponents sur la sortie Components[3].
    Les éléments sont mappés et une fonction SimpleLoop avec NestedContext est ajoutée à l'élément de boucle de sortie.

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>
    <Components>
      <Id>201</Id>
      <PartNumber>88-B</PartNumber>
      <Quantity>2</Quantity>
      <Description>Hinge</Description>
    </Components>
    <Components>
      <Id>202</Id>
      <PartNumber>GF4488-B</PartNumber>
      <Quantity>1</Quantity>
      <Description>Lock</Description>
    </Components>
    <Components>
      <Id>203</Id>
      <PartNumber>288333-I10023</PartNumber>
      <Quantity>1</Quantity>
      <Description>Sign</Description>
    </Components>
    <Components>
      <Id>401</Id>
      <PartNumber>88-C</PartNumber>
      <Quantity>2</Quantity>
      <Description>Window Lock</Description>
    </Components>
    <Components>
      <Id>402</Id>
      <PartNumber>RT433</PartNumber>
      <Quantity>1</Quantity>
      <Description>Window Frame</Description>
    </Components>
    <Components>
      <Id>403</Id>
      <PartNumber>15</PartNumber>
      <Quantity>1</Quantity>
      <Description>Glass</Description>
    </Components>
  </Row>
</FlatComponents>