Générer et configurer une expression AgConcat - 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

Talend Data Mapper peut générer automatiquement une expression AgConcat pour traiter les boucles incompatibles.

Pourquoi et quand exécuter cette tâche

Cet exemple utilise l'échantillon XML suivant en entrée :
<root>
	<loopA>
		<A>a1</A>
		<loopB>
			<B>b11</B>
		</loopB>
		<loopB>
			<B>b12</B>
		</loopB>
		<loopC>
			<C>c11</C>
		</loopC>
		<loopC>
			<C>c12</C>
		</loopC>
	</loopA>
	<loopA>
		<A>a2</A>
		<loopB>
			<B>b21</B>
		</loopB>
		<loopB>
			<B>b22</B>
		</loopB>
		<loopC>
			<C>c21</C>
		</loopC>
		<loopC>
			<C>c22</C>
		</loopC>
	</loopA>
</root>
La structure XML de sortie est définie comme suit :
root
	row (0:*)
		A
		B
		C1
		C2

Procédure

  1. Créez une map et ajoutez les structures d'entrée et de sortie.

    Exemple

  2. Glissez l'élément d'entrée A sur l'élément de sortie A.
    Une expression de boucle est automatiquement créée sur l'élement de sortie row.
  3. Glissez l'élément d'entrée B sur l'élément de sortie B.
    Cette action crée un conflit, le contexte de boucle de l'élément d'entrée B n'est pas compatible avec le contexte de boucle de sortie courant.
  4. Sélectionnez Generate AgConcat value expression on out$/root/row/B et cliquez sur OK.
    Une fonction AgConcat est automatiquement ajoutée à l'élément de sortie B.
  5. Glissez l'élément d'entrée C sur l'élément de sortie C1, puis sélectionnez Generate AgConcat value expression on out$/root/row/C1 et cliquez sur OK.
  6. Déposez une fonction SingleIndex sur l'argument Filter de la fonction AgConcat.
    Cela vous permet de spécifier que l'élément de sortie C1 doit retourner uniquement la première valeur de l'élément d'entrée C.
  7. Glissez l'élément d'entrée C sur l'élément de sortie C2, puis sélectionnez Generate AgConcat value expression on out$/root/row/C2 et cliquez sur OK.
    Comme l'élément frère C1 contient un filtre, un filtre correspondant est automatiquement ajouté à C2 afin qu'il retourne uniquement la deuxième valeur de l'élément d'entrée C.

Résultats

La map est configurée, vous pouvez utiliser l'option Test Run pour voir le résultat. Dans cet exemple, il ressemble à ceci :
<root>
  <row>
    <A>a1</A>
    <B>b11b12</B>
    <C1>c11</C1>
    <C2>c12</C2>
  </row>
  <row>
    <A>a2</A>
    <B>b21b22</B>
    <C1>c21</C1>
    <C2>c22</C2>
  </row>
</root>