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

Mapper une boucle récursive

Utilisez une fonction RecursiveLoop pour mapper une boucle d'entrée récursive vers une boucle similaire de sortie.

Avant de commencer

Vous avez créé une map avec une structure d'entrée et de sortie. Dans cet exemple, vous pouvez utiliser CustomComponent en entrée et Component en sortie. Ces structures se trouvent sous Other Projects > Examples > Structures > Recursive > Component.

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. C'est une boucle récursive utilisant les mêmes éléments que son parent.

Cette boucle récursive doit être mappée à une boucle récursive similaire dans la structure de sortie.

Cette map est disponible dans Other Projects > Examples > Maps > Looping > LoopSkipLevel.

Procédure

  1. Glissez l'élément Component sur l'élément de sortie correspondant.
  2. 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.
  3. Répétez les étapes précédentes pour la boucle de sortie.
  4. Glissez-déposez une fonction RecursiveLoop sur l'onglet Loop de l'élément de sortie SubComponents.
  5. Glissez-déposez l'élément d'entrée SubComponents sur l'argument Input Map Element.
  6. Glissez l'élément d'entrée SubComponents sur l'élément de sortie correspondant afin de mapper leurs enfants.

Résultats

Avec ctte fonction RecursiveLoop, vous devez uniquement mapper le premier niveau de la boucle récursive. Le même mapping est appliqué à tous les niveaux suivants présents dans le fichier d'entrée. 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 :
<Component>
  <Id>1</Id>
  <PartNumber>45I1122</PartNumber>
  <Quantity>1</Quantity>
  <Description>Main Component</Description>
  <SubComponents>
    <Id>102</Id>
    <PartNumber>12ZSSS</PartNumber>
    <Quantity>5</Quantity>
    <Description>Door Assembly</Description>
    <SubComponents>
      <Id>201</Id>
      <PartNumber>88-B</PartNumber>
      <Quantity>2</Quantity>
      <Description>Hinge</Description>
    </SubComponents>
    <SubComponents>
      <Id>202</Id>
      <PartNumber>GF4488-B</PartNumber>
      <Quantity>1</Quantity>
      <Description>Lock</Description>
    </SubComponents>
    <SubComponents>
      <Id>203</Id>
      <PartNumber>288333-I10023</PartNumber>
      <Quantity>1</Quantity>
      <Description>Sign</Description>
    </SubComponents>
  </SubComponents>
  <SubComponents>
    <Id>302</Id>
    <PartNumber>12IQWO</PartNumber>
    <Quantity>14</Quantity>
    <Description>Window Assembly</Description>
    <SubComponents>
      <Id>401</Id>
      <PartNumber>88-C</PartNumber>
      <Quantity>2</Quantity>
      <Description>Window Lock</Description>
    </SubComponents>
    <SubComponents>
      <Id>402</Id>
      <PartNumber>RT433</PartNumber>
      <Quantity>1</Quantity>
      <Description>Window Frame</Description>
    </SubComponents>
    <SubComponents>
      <Id>403</Id>
      <PartNumber>15</PartNumber>
      <Quantity>1</Quantity>
      <Description>Glass</Description>
    </SubComponents>
  </SubComponents>
</Component>

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 – dites-nous comment nous améliorer !