Mapper des boucles imbriquées - 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
Mapper des boucles d'entrée imbriquées vers différentes boucles de sortie imbriquées. Les boucles imbriquées signifient que vous souhaitez itérer au niveau le plus profond de votre hiérarchie de boucle tout en gardant la possibilité d'accéder aux données des boucles parentes.

Avant de commencer

Vous avez créé une map avec une structure d'entrée et de sortie. Dans cet exemple, vous pouvez utiliser POFile en entrée et SimpleShipNoticeFile en sortie. Ces structures se trouvent sous Other Projects (Autres projets) > Examples (Exemples) > Structures > Simple > POStandard.

Pourquoi et quand exécuter cette tâche

Dans cet exemple, trois niveaux d'éléments de boucle d'entrée doivent être mappés vers deux niveaux dans la sortie. L'élément de sortie Notice doit itérer sur la boucle d'entrée Delivery, mais doit également utiliser l'élément Number de la boucle PO parente.

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

Procédure

  1. Glissez l'élément d'entrée PO/Number sur l'élément de sortie Num.
    Une expression de boucle avec une fonction SimpleLoop est ajoutée à Notice.
  2. Glissez l'entrée DeliveryToName sur la sortie Name.
  3. Dans la boîte de dialogue qui s'ouvre, sélectionnez Change the output element looping (Modifier l'itération de l'élément de sortie) puis cliquez sur OK.
    Une fonction NestedContext est automatiquement ajoutée à l'argument Context de SimpleLoop dans l'élément Notice. Une autre SimpleLoop est ajoutée à NestedContext et utilise une référence à la boucle d'entrée Delivery comme argument.
  4. Facultatif : Mappez les autres éléments selon vos besoins.

Résultats

L'utilisation de NestedContext indique qu'il doit y avoir un élément Notice pour chaque boucle d'entrée Delivery contenue dans chaque boucle PO. Le document échantillon d'entrée contient deux éléments PO, un contenant une seule occurrence de Delivery et l'autre en contenant deux. Si vous utilisez Test Run, vous devez avoir trois éléments Notice :
<Notices>
  <Notice>
    <Num>1</Num>
    <Name>Francis Upton</Name>
  </Notice>
  <Notice>
    <Num>2</Num>
    <Name>Francis Upton</Name>
  </Notice>
  <Notice>
    <Num>2</Num>
    <Name>Martha Lyman</Name>
  </Notice>
</Notices>