# Configurer un nombre d'itérations de boucles dans une structure plate

Utilisez un élément SetElementProperty pour définir le nombre de boucles à lire pour un élément et ignorer les autres itérations.

## Avant de commencer

Vous avez un fichier plat à utiliser comme document d'échantillon. Vous pouvez en créer un à partir des données d'échantillon fournies ci-dessous.

## Pourquoi et quand exécuter cette tâche

Dans cet exemple, vous avez un fichier plat contenant trois éléments nommés a, b et c. L'élément b est une boucle. Vous souhaitez configurer un nombre d'itérations de boucles devant être lues et ignorer les autres. Vous pouvez le faire en configurant les valeurs Occurs Min/Max dans les propriétés de l'élément. Cependant, utiliser un SetElementProperty à la place peut être utile si vous souhaitez modifier cette valeur dans une map sans affecter la structure.

Vous pouvez utiliser les données suivantes pour votre échantillon d'entrée :

```
a1b1b2b3b4b5c1
```

## Procédure

1. Créez votre structure :
   1. Dans l'éditeur Hierarchical Mapper, cliquez-droit sur Structures et sélectionnez New &gt; Structure.
   2. 
   3. 
   4. Sélectionnez la représentation Flat Files et cliquez sur Next.
   5. Cliquez sur Import a file as document et cliquez sur Next.
   6. Parcourez votre système jusqu'au dossier correspondant et sélectionnez votre fichier plat, puis cliquez sur Finish.
2. Cliquez-droit sur l'élément racine et créez les trois éléments enfants nommés a, b et c.

   Votre structure doit ressembler à ceci : ![Création des éléments.](https://help.qlik.com/talend/fr-FR/data-mapper-functions-reference-guide/Resources/images/set_number_of_loops_01_structure.png)
3. Cliquez sur l'élément a et saisissez 2 dans les champs Size Min/Max, puis saisissez les mêmes valeurs pour l'élément c.
4. Cliquez sur l'élément b et saisissez 1 dans le champ Occurs Min, 100 dans le champ Occurs Max et 2 dans les champs Size Min/Max.

   Cela indique que l'élément doit survenir une fois et jusqu'à 100 fois. Chaque itération est de deux octets. ![Propriétés de l'élément b.](https://help.qlik.com/talend/fr-FR/data-mapper-functions-reference-guide/Resources/images/set_number_of_loops_02_b_element.png)
5. Placez une fonction SetElementProperty dans l'onglet Util de l'élément b.
6. Double-cliquez sur la fonction SetElementProperty et sélectionnez Loop Count dans la liste déroulante Property.
7. Placez une fonction Constant sur l'argument Value, double-cliquez sur la fonction et saisissez 3 dans le champ Value (Valeur), puis cliquez sur OK.

   Cela indique que seules les trois premières itérations des éléments b doivent être lues. ![Placement de la fonction Constant.](https://help.qlik.com/talend/fr-FR/data-mapper-functions-reference-guide/Resources/images/set_number_of_loops_03_setelementproperty.png)

   Le nombre de boucles à lire est défini mais une erreur s'affiche car il n'y a aucune instruction pour traiter le reste du fichier.
8. Placez une fonction SetElementProperty dans l'onglet Util de l'élément c et laissez la configuration par défaut de la propriété Byte offset (Offset d'octets).
9. Placez une fonction Constant sur l'argument Value, double-cliquez sur la fonction et saisissez 12 dans le champ Value (Valeur), puis cliquez sur OK.

   Cette expression indique sur l'élément c commence 12 octets après le premier octet du document, ce qui signifie que les deux itérations de boucle ignorées dans les éléments b sont supprimées et non lues comme partie de l'élément c.

## Résultats

Votre structure est configurée. Si vous souhaitez vérifier que les propriétés sont correctes, vous pouvez créer une map avec cette structure en entrée et en sortie. ![Résultat de la structure.](https://help.qlik.com/talend/fr-FR/data-mapper-functions-reference-guide/Resources/images/set_number_of_loops_04_map.png)

Lorsque vous utilisez la fonctionnalité Test Run, vous obtenez les résultats suivants :

```
a1b1b2b3c1
```

Si nécessaire, vous pouvez modifier la propriété Loop Count dans la map, sans affecter la structure ou toute autre map l'utilisant.