Accéder au contenu principal Passer au contenu complémentaire

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 > Structure.
    2. Dans l'assistant qui s'ouvre, sélectionnez Create a new structure where you can manually enter elements et cliquez sur Next (Suivant).
    3. Sélectionnez un dossier et saisissez le nom de la nouvelle structure, puis cliquez sur Next (Suivant).
    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 la section à gauche de votre espace de travail et cliquez sur New Element (Nouvel élément) pour créer un élément racine.
  3. Ciquez-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 :
  4. 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.
  5. 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.
  6. Glissez-déposez une fonction SetElementProperty dans l'onglet Util de l'élément b.
  7. Double-cliquez sur la fonction SetElementProperty et sélectionnez Loop Count dans la liste déroulante Property.
  8. Glissez-déposez une fonction Constant sur l'argument Value, puis double-cliquez sur la fonction, saisissez 3 dans le champ Value et cliquez sur OK.
    Cela indique que seules les trois premières itérations des éléments b doivent être lues.
    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.
  9. Glissez-déposez une fonction SetElementProperty dans l'onglet Util de l'élément c et laissez la propriété par défaut Byte offset.
  10. Glissez-déposez une fonction Constant sur l'argument Value, puis double-cliquez sur la fonction, saisissez 12 dans le champ Value et 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.
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.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !