Créer des boucles récursives depuis un fichier plat - 8.0

Guide de référence des fonctions de Talend Data Mapper

Version
8.0
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-10-26

Utilisez une fonction FlatToHierarchyLoop pour créer des boucles récursives basées sur les niveaux définis dans un fichier plat.

Avant de commencer

Vous avez créé une map avec une structure d'entrée et de sortie. Vous pouvez utiliser les échantillons fournis ci-dessous.

Pourquoi et quand exécuter cette tâche

Dans cet exemple, vous avez un fichier CSV décrivant une table de contenus avec des tuiles, des numéros de page et des numéros correspondant au niveau de chaque élément. Vous souhaitez créer un fichier XML dans lequel les éléments sont imbriqués selon leur niveau. Vous pouvez utiliser l'échantillon suivant en entrée :
title,page,level
Introduction,3,1
Part 1,10,1
Chapter 1,10,2
Section 1,10,3
Section 2,31,3
Section 3,56,3
Chapter 2,80,2
Section 1,80,3
Section 2,102,3
Part 2,125,1
Chapter 1,125,2
Chapter 2,160,2
Section 1,160,3
Section 2,185,3
Conclusion,213,1
Vous pouvez utiliser l'échantillon XML suivant pour créer votre structure de sortie :
<contents>
	<entry>
		<title/>
		<page/>
	</entry>
	<entry>
		<title/>
		<page/>
	</entry>
</contents>

Procédure

  1. Cliquez sur l'élément de sortie entry et glissez-déposez une fonction FlatToHierarchyLoop dans son onglet Loop.
  2. Glissez-déposez l'élément d'entrée row sur l'argument Input Map Element.
  3. Glissez-déposez l'élément d'entrée level sur l'élément Level Number.
    La fonction utilise le numéro dans la colonne leveldu fichier d'entrée pour déterminer comment structurer la boucle récursive dans la sortie.
  4. Glissez-déposez l'élément d'entrée row sur l'élément de sortie entry pour mapper automatiquement le titre title et la page.

Résultats

Votre map est configurée et doit ressembler à ceci :
Vous pouvez utiliser la fonctionnalité Test Run pour voir le résultat. Dans cet exemple, la sortie suivante est retournée :
<contents>
  <entry>
    <title>Introduction</title>
    <page>3</page>
  </entry>
  <entry>
    <title>Part 1</title>
    <page>10</page>
    <entry>
      <title>Chapter 1</title>
      <page>10</page>
      <entry>
        <title>Section 1</title>
        <page>10</page>
      </entry>
      <entry>
        <title>Section 2</title>
        <page>31</page>
      </entry>
      <entry>
        <title>Section 3</title>
        <page>56</page>
      </entry>
    </entry>
    <entry>
      <title>Chapter 2</title>
      <page>80</page>
      <entry>
        <title>Section 1</title>
        <page>80</page>
      </entry>
      <entry>
        <title>Section 2</title>
        <page>102</page>
      </entry>
    </entry>
  </entry>
  <entry>
    <title>Part 2</title>
    <page>125</page>
    <entry>
      <title>Chapter 1</title>
      <page>125</page>
    </entry>
    <entry>
      <title>Chapter 2</title>
      <page>160</page>
      <entry>
        <title>Section 1</title>
        <page>160</page>
      </entry>
      <entry>
        <title>Section 2</title>
        <page>185</page>
      </entry>
    </entry>
  </entry>
  <entry>
    <title>Conclusion</title>
    <page>213</page>
  </entry>
</contents>