Agréger des boucles imbriquées dans une boucle simple - 7.3

Guide d'utilisation de Talend Data Mapper

Version
7.3
Language
Français (France)
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

Convertissez une structure XML avec boucles imbriquées en une structure CSV plate en agrégeant les boucles imbriquées.

Avant de commencer

Vous avez créé une map et ajouté une structure d'entrée et de sortie.

Pourquoi et quand exécuter cette tâche

Cet exemple utilise la même structure d'entrée que dans Combiner des boucles imbriquées en une boucle simple. L'objectif de la transformation est d'obtenir un fichier CSV avec une ligne pour chaque élément Address contenant des informations concernant la livraison et les produits.

La structure de sortie contient de multiples éléments PartNumber et ProductName, afin que chaque ligne puisse contenir tous les produits à livrer à une adresse spécifique. Ils sont définis comme suit :
AddressesShipping
	Address (0:*)
		Name
		Street
		City
		State
		Zip
		Country
		DeliveryNotes
		PartNumber_1
		ProductName_1
		PartNumber_2
		ProductName_2
		PartNumber_3
		ProductName_3

Procédure

  1. Glissez les éléments d'entrée suivants sur les éléments de sortie correspondants :
    • Name (Nom)
    • Street
    • City (ville)
    • État
    • Zip
    • Country
    • DeliveryNotes
  2. Glissez l'élément d'entrée PartNumber sur l'élément de sortie PartNumber_1.
    Puisque la structure de sortie est déjà en cours d'itération sur l'élément d'entrée Address, cela crée un conflit.
  3. Dans la boîte de dialogue qui s'ouvre, sélectionnez Generate AgConcat value expression et cliquez sur OK.
    Avec cette option, toutes les valeurs des éléments PartNumber contenus dans chaque élément Address sont agrégées dans un champ unique, à l'aide d'une fonction AgConcat. Si vous souhaitez avoir une valeur unique par champ, vous devez utiliser un filtre.
  4. Glissez une fonction SingleIndex dans l'argument Filter, dans l'onglet Value de l'élément de sortie PartNumber_1.
    Pour obtenir la valeur du premier élément PartNumber, vous pouvez laisser la valeur par défaut pour l'index.
  5. Glissez l'élément d'entrée PartNumber dans les éléments de sortie PartNumber_2 et PartNumber_3, puis sélectionnez Generate AgConcat value expression dans les boîtes de dialogue qui s'ouvrent et cliquez sur OK.
    Les filtres sont automatiquement configurés, selon l'expression définie dans PartNumber_1.
  6. Répétez les étapes précédentes pour mapper l'élément d'entrée ProductName aux éléments de sortie ProductName_1, ProductName_2 and ProductName_3.

    Exemple

Résultats

Votre mapping est configuré. Si vous avez un document échantillon, vous pouvez cliquer sur Test Run pour voir le résultat. Dans cet exemple, il ressemble à ceci :
Name,Street,City,State,Zip,Country,DeliveryNotes,PartNumber_1,ProductName_1,PartNumber_2,ProductName_2,PartNumber_3,ProductName_3
Deandre King,4894  Winding Way,Southfield,MI,48075,USA,Please leave packages in shed by driveway.,872-AA,Lawnmower,926-AA,Baby Monitor,,
Burl Clark,3807 Pointe Lane,Fort Lauderdale,FL,33308,USA,,356-KX,Gas canister,,,,