3.4Itérateurs, agrégateurs & transformations
L'essentiel en 30 secondes
- L'itérateur déplie : il parcourt une liste et exécute les actions suivantes pour chaque élément (une ligne par article).
- L'agrégateur rassemble : il fusionne plusieurs éléments en une seule valeur (total, récapitulatif, texte concaténé).
- Les transformations nettoient : formater une date, un texte ou un montant pour que la donnée arrive propre dans l'appli cible.
Mini-cas filé — Lina consolide les lignes de commande
Lina, chargée de digitalisation à Oran, reçoit des commandes dont chaque réponse contient plusieurs articles : son scénario ne prenait que le premier et oubliait le reste. Elle ajoute un itérateur qui déplie la liste (une ligne par article), des transformations qui nettoient (dates formatées, montants arrondis, noms en majuscules), puis un agrégateur qui produit le total et un récapitulatif texte envoyé en un seul message. Éclater pour traiter, regrouper pour restituer.
Ce même cas revient dans le cours, le schéma, le script et le défi 48h.
1. Itérateur et agrégateur : éclater puis regrouper
Les données réelles arrivent souvent en lots : une commande contient plusieurs lignes, un message plusieurs pièces jointes, une réponse d'API une liste d'éléments. L'itérateur « déplie » une liste et exécute les actions pour chaque élément (créer une ligne par article commandé). L'agrégateur fait l'inverse : il rassemble plusieurs éléments en une seule valeur (fusionner des lignes en un récapitulatif, additionner, concaténer).
Le signe qui doit alerter : une donnée « tableau/array » ou un « [ … ] » dans les résultats. Sans itérateur, le scénario ne prend souvent que le premier élément ; avec le couple itérateur → agrégateur, Lina traite chaque article puis restitue un résultat consolidé.
2. Les transformations : livrer du propre
S'y ajoutent les transformations : nettoyer et remettre en forme les données au passage — formater une date, mettre en majuscules, extraire une partie de texte, convertir un format, calculer. Ces fonctions, souvent proches d'un tableur, garantissent que la donnée arrive propre et exploitable dans l'application cible.
Itérateurs, agrégateurs et transformations sont ce qui permet de traiter des cas réalistes (pas juste un champ isolé), et donc de bâtir des automatisations robustes à hauteur des processus d'entreprise.
🔎 Exemple concret — Lignes d'une commande consolidées
Lina applique le motif itérateur → agrégateur.
Déclencheur renvoie une liste (articles)
Itérateur : créer une ligne par article
Transformation : arrondir, formater les dates
Agrégateur : total + récap texte → un seul message
Lecture : chaque article est traité, puis tout est consolidé.
Leçon : un « [ … ] » dans les données = besoin d'itérer.
Vocabulaire de la section
- Itérateur
- Module qui parcourt une liste et exécute les actions suivantes pour chaque élément (un par un).
Exemple simple : Lina crée une ligne par article de la commande.
Ce que ce n'est pas : un module qui fusionne tout en une valeur.
Réflexe : ajouter un itérateur dès qu'on voit un [ … ].
- Agrégateur
- Module qui rassemble plusieurs éléments/résultats en une seule valeur (fusion, somme, concaténation).
Exemple simple : Le total et le récapitulatif texte de Lina en un message.
Ce que ce n'est pas : un parcours élément par élément.
Réflexe : terminer par un agrégateur quand on veut un résultat unique.
- Transformation
- Opération remettant la donnée en forme au passage (formater une date, extraire du texte, convertir, calculer).
Exemple simple : Dates formatées et montants arrondis avant l'envoi.
Ce que ce n'est pas : l'envoi brut des données d'origine.
Réflexe : nettoyer avant l'action finale, jamais après.
- Tableau (array)
- Liste de données (lignes d'une commande, éléments d'une réponse d'API) que l'itérateur déplie.
Exemple simple : La liste d'articles reçue dans la commande.
Ce que ce n'est pas : un champ unique isolé.
Réflexe : repérer les crochets [ … ] dans les résultats.
- Bundle / paquet
- Élément individuel produit à chaque tour d'itération, sur lequel s'appliquent les actions.
Exemple simple : Chaque article traité un par un par Lina.
Ce que ce n'est pas : la liste entière traitée d'un bloc.
Réflexe : contrôler un paquet test avant de généraliser.
En pratique — Traiter des listes et transformer des données
- Partez d'un déclencheur renvoyant une liste (ex. lignes d'une commande, ou plusieurs enregistrements).
- Ajoutez un itérateur pour parcourir la liste et créez une action par élément (une ligne par article).
- Utilisez un agrégateur pour produire un récapitulatif (total, texte concaténé) à partir de ces éléments.
- Insérez des transformations : formatez les dates, nettoyez le texte, arrondissez les montants avant l'action finale.
Script prêt à dire — expliquer le traitement en lot (30 s)
« La commande arrive en liste : mon itérateur déplie et crée une ligne par article, mes transformations nettoient dates, textes et montants, puis mon agrégateur produit le total et le récapitulatif en un seul message. On ne perd plus aucun article et on livre du propre. »
À dire en revue d'équipe ; montrer une commande à 3 articles traitée de bout en bout.
Modèle copier-coller — fiche lot itérateur → agrégateur
LISTE SOURCE (champ tableau repéré) : _______________
ITÉRATEUR (1 action par élément) : _______________
TRANSFORMATIONS (dates / texte / montants) : _______________
AGRÉGATEUR (total + récap unique) : _______________
TPE / indépendant
Même à petit volume : itérer sur les pièces jointes une par une évite les oublis.
PME à Oran
Lina consolide les commandes du jour en un seul récapitulatif envoyé à la comptabilité.
Équipe digitale
Standardiser les formats (dates, montants) dans les transformations pour des bases toujours propres.
Débutant
S'exercer sur une liste de 3 articles : itérer, transformer un champ, agréger un total.
✓ Bonnes pratiques
- Itérer dès qu'une donnée arrive en liste (array).
- Combiner itérateur → agrégateur pour consolider un résultat.
- Nettoyer/formater les données avant l'action finale.
✗ Pièges fréquents
- Traiter une liste comme un bloc (ne prendre que le 1er élément).
- Oublier de formater (dates, texte) avant l'action cible.
- Itérer quand chaque exécution ne concerne qu'un seul objet (inutile).
Points clés à retenir
- L'itérateur déplie une liste et exécute les actions pour chaque élément.
- L'agrégateur rassemble plusieurs éléments en une seule valeur (fusion, somme, concaténation).
- Les transformations remettent la donnée en forme (dates, texte, conversions, calculs).
- Ces modules permettent de traiter des cas réalistes (listes, lots) et non un champ isolé.
Défi 48h — appliquez demain
Repérez 1 liste dans vos données et ajoutez un itérateur + 1 transformation (date ou montant).
- Je repère un tableau [ … ] dans les résultats.
- Je sais itérer puis agréger un résultat.
- Je nettoie dates et montants avant l'action finale.
Questions fréquentes
Quand ai-je vraiment besoin d'un itérateur ?
Dès que le déclencheur (ou une étape) renvoie plusieurs éléments et que vous voulez agir sur chacun : plusieurs articles dans une commande (créer une ligne par article), plusieurs pièces jointes (les enregistrer une à une), une liste d'enregistrements à traiter. Sans itérateur, le scénario ne prendrait souvent que le premier élément, ou traiterait la liste comme un bloc informe. Le signe qui doit alerter : vous voyez une donnée « tableau/array » ou un « [ … ] » dans les résultats. C'est le moment d'itérer. À l'inverse, si chaque exécution ne concerne qu'un seul objet, l'itérateur est inutile.
Itérateur puis agrégateur : à quoi sert cette combinaison ?
C'est un motif très courant : on déplie une liste pour traiter/transformer chaque élément (itérateur), puis on rassemble les résultats en une sortie unique (agrégateur). Exemple : à partir des lignes d'une commande, on calcule le sous-total de chacune (itération), puis on les additionne et on génère un récapitulatif texte (agrégation) à envoyer par message. « Éclater pour traiter, regrouper pour restituer » : ce couple itérateur → agrégateur est l'un des schémas les plus puissants pour gérer proprement des données en lot, tout en produisant un résultat consolidé et lisible.
À quoi sert un itérateur ?