Aller au contenu principal

Iterator

Configuration actuelle de la tâche Itérateur dans le Workflow Designer
  • Type de tâche: iterator

La tâche Iterator est un outil d'automatisation puissant conçu pour exécuter un processus répétitif sur un ensemble de données. Elle prend en entrée un ensemble de données et lance un Workflow "enfant" pour chaque ligne de cet Ensemble de données.

Cela permet de traiter en masse de grandes quantités d'informations, en passant les valeurs de chaque ligne comme paramètres au Workflow enfant. C'est l'équivalent d'une boucle "for-each" pour les processus d'automatisation.

Prérequis

Pour fonctionner correctement, la tâche Iterator doit avoir l'un des éléments suivants en entrée :

Configuration

La configuration de la tâche définit quel Workflow exécuter et comment passer les données à chaque itération.

  • Filter Worflow: Permet de filtrer la liste des Workflows disponibles, facilitant l'identification de ceux à lancer.
  • Workflow à itérer: Sélectionne dans le menu le nom du Workflow "enfant" qui doit être exécuté pour chaque ligne de l'ensemble de données.
  • Arrêter à la première itération échouée: Si cette case est cochée, l'Itérateur s'arrêtera immédiatement dès qu'une des exécutions du Workflow enfant échouera. Si elle ne l'est pas, l'Itérateur tentera de compléter toutes les itérations, même si certaines d'entre elles échouent.

Configuration des Paramètres

Cette section permet de mapper les données de l'ensemble de données d'entrée aux paramètres du Workflow enfant.

  • Paramètre: Le nom du paramètre tel qu'il est défini dans le Workflow enfant (par exemple, "department").
  • Valeur: La valeur à attribuer au paramètre pour l'itération courante.
  • Exemple : #>JSON to Table.Dataset.department<# indique que, pour chaque ligne, la valeur de la colonne name de l'ensemble de données produit par la tâche JSON to Table sera passée comme valeur.
  • Type: Le type de données du paramètre (par exemple, String, Numeric, etc.).

Exemple pratique de fonctionnement

Configuration de l'Iterator

  1. Workflow Parent (Préparation des Données) :
  • La tâche Importer du texte lit un fichier JSON qui contient une liste de dipènents.
[
{
"name": "John",
"surname": "Smith",
"department": "Human Resources"
},
{
"name": "Emily",
"surname": "Johnson",
"department": "Finance"
},
{
"name": "Michael",
"surname": "Brown",
"department": "IT"
},
{
"name": "Sarah",
"surname": "Davis",
"department": "Marketing"
}
]
  • Ensuite, la tâche JSON vers Tableau exécute sa fonction principale : se connecte à une base de données et écrit les données du JSON dans une table. Le log d'exécution le confirme avec le message "4 rows inserted into table". En plus de l'écriture sur la base de données, la tâche rend disponibles des paramètres de sortie qui représentent les données traitées et insérées dans la table, permettant ainsi leur réutilisation dans les tâches suivantes du Workflow.
  1. Configuration et Action de l'Itérateur :
  • Workflow à itérer : est défini sur "dev_iterator".
  • Paramètre : Le Workflow enfant attend un paramètre appelé "department".
  • Valeur : Ce paramètre est mappé à la valeur de la colonne "department" de l'ensemble de données : #>JSON to Table.Dataset.department<#.
  1. Exécution des Itérations : L'Itérateur exécute maintenant le Workflow “dev_iterator” 4 fois, une pour chaque ligne (dipêndent) de l'ensemble de données :
  • Première itération : Lance “dev_iterator” en passant le paramètre department = "Human Resources".
  • Deuxième itération : Lance “dev_iterator” en passant department = "Finance".
  • Troisième itération : Lance “dev_iterator” en passant department = "IT".
  • Quatrième itération : Lance “dev_iterator” en passant department = "Marketing".
  1. Logique du Workflow Enfant (dev_iterator) :
  • À chaque exécution, la tâche Conditionnel à l'intérieur évalue la valeur du paramètre "department" reçu et dirige le flux vers la tâche de envoi d'e-mails appropriée. Pour "IT", ne trouvant aucune condition spécifique, elle suivra le chemin "Sinon".
  1. Résultat Final :
  • Quatre e-mails distincts sont envoyés, un pour chaque employé présent dans le fichier JSON original. Le journal d'exécution de la tâche Iterator confirme le succès avec le message : "Toutes les itérations ont été complétées avec succès".

Workflow Parent

Workflow Filon

Note Importante

  • Seuls les Workflows qui ne sont pas bloqués en modification au moment de l'exécution peuvent être exécutés.
  • La tâche Iterator se terminera avec l'état "Success" seulement si toutes les itérations aboutissent (sauf si l'option "Arrêter à la première itération échouée" est activée, auquel cas elle s'arrêterait au premier erreur).

Paramètres de Sortie

À la fin de toutes ses itérations, la tâche Iterator expose une série de paramètres de sortie. Ces paramètres sont extrêmement utiles pour les tâches suivantes, par exemple pour des fins de journalisation, pour envoyer un rapport récapitulatif ou pour implémenter une logique conditionnelle basée sur le résultat du cycle.

  • targetWorkflow : Renvoie le nom ou l'identifiant du Workflow "fils" qui a été exécuté à chaque itération.
  • Dataset.Count : Indique le nombre total de lignes présentes dans l'ensemble de données d'entrée.
  • Iterations.Total : Le nombre total d'itérations qui ont été effectivement exécutées. Dans une exécution normale, cette valeur correspondra à Dataset.Count.
  • Iterations.Success : Le compteur des itérations qui se sont terminées avec succès. Chaque fois qu'une exécution du Workflow fils se termine correctement, ce nombre est incrémenté.
  • Iterations.Failed : Le compteur des itérations échouées. Si une exécution du Workflow fils se termine avec une erreur, ce nombre est incrémenté.
  • result : Fournit l'état global de la tâche Iterator elle-même. Il indique généralement "Success" seulement si toutes les itérations ont été complétées avec succès.
  • resultJson : Représente le résultat de l'exécution de la tâche au format JSON, incluant des informations générales, des configurations et des détails sur l'exécution.