UiPath Documentation
maestro
latest
false
Guide de l'utilisateur de Maestro
Important :
La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

Sous-flux

Sous-flux pour regrouper les nœuds de processus dans des unités réutilisables et autonomes au sein d'un workflow parent, avec des règles d'étendue des variables et une configuration d'entrée/de sortie.

De quoi il s'agit

Un sous-flux est un processus intégré dans un autre processus. Il regroupe un ensemble de nœuds dans une unité autonome qui s'exécute dans le cadre du processus parent et lui renvoie la sortie. Les sous-flux vous aident à organiser une logique complexe en éléments réutilisables et gérables.

Mode de fonctionnement

Lorsqu'un processus parent atteint un nœud de sous-flux, l'exécution entre dans le sous-flux et exécute ses nœuds dans la séquence. Le sous-flux a sa propre étendue de variables, de sorte que les variables définies à l'intérieur n'entrent pas en conflit avec les variables du processus parent. Lorsque le sous-flux se termine, sa valeur de retour est renvoyée au processus parent et l'exécution se poursuit à partir du nœud suivant après le sous-flux.

Les nœuds à l'intérieur d'un sous-flux peuvent accéder:

  • Autres nœuds au sein du même sous-flux
  • L’étendue du processus parent

La valeur de retour du sous-flux est accessible au processus parent sous la forme $vars.<subflowName>.output.

Création d'un sous-flux

Pour ajouter un sous-flux à votre processus:

  1. Ouvrez la palette de nœuds sur le canevas.
  2. Recherchez ou localisez le nœud Subflow .
  3. Faites-le glisser sur la zone de dessin et connectez-le au nœud précédent.

Flux ajoute le sous-flux sous forme de conteneur réductible sur la zone de dessin. Sélectionnez-le pour le développer et ajoutez des nœuds à l'intérieur.

Résultat: le sous-flux apparaît sur la zone de dessin sous la forme d'un conteneur réductible. Faites glisser les nœuds à l'intérieur pour définir la logique du sous-flux.

Transmission de données en entrée et en sortie

Entrées

Vous définissez les entrées de sous-flux dans le panneau Propriétés. Chaque entrée accepte une valeur ou une expression de l’étendue du processus parent.

Pour configurer les entrées de sous-flux:

  1. Sélectionnez le nœud du sous-flux sur la zone de dessin.
  2. Ouvrez la section Entrées de sous-flux dans le panneau Propriétés.
  3. Pour chaque entrée, saisissez un nom et une valeur ou une expression.

Résultat: les entrées sont configurées et disponibles dans le corps du sous-flux en tant que $vars.<inputName>.

Sortie

La valeur de retour du sous-flux est disponible pour le processus parent sous la forme $vars.<subflowName>.output. Vous le référencez dans n'importe quelle expression de nœud en aval comme n'importe quelle autre sortie de nœud.

// Access the output of a subflow named "validateOrder"
$vars.validateOrder.output
$vars.validateOrder.output.isValid
// Access the output of a subflow named "validateOrder"
$vars.validateOrder.output
$vars.validateOrder.output.isValid

Étendue de la variable

Les sous-flux créent leur propre étendue de variables. Cela signifie que les variables mises à jour dans un sous-flux sont espace de noms pour éviter les conflits avec le processus parent.

De l'extérieur du sous-flux, vous référencez les variables internes d'un sous-flux comme $vars.<subflowName>.<variableName>. Par exemple, une variable counter à l'intérieur d'un sous-flux nommé subflow1 est référencée comme $vars.subflow1.counter par le processus parent.

Depuis l'intérieur du sous-flux, les nœuds accèdent à la sortie de leurs nœuds frères à l'aide du modèle $vars.<nodeName>.<property> standard. Ils peuvent également lire directement à partir de l'étendue du processus parent.

Remarque :

L'espacement des noms des variables empêche les variables internes d'un sous-flux d'écraser les variables parents qui partagent le même nom. Vous n'avez pas besoin de coordonner les noms de variable entre le parent et le sous-flux.

Exemple pratique

Un processus parent qui appelle un sous-flux pour valider les données de commande avant de les traiter.

Processus parent:

  1. Requête HTTP (httpRequest1): extrait les données de commande à partir d'une API externe.
  2. Sous-flux (validateOrder) — valide les données de commande et renvoie un résultat.
  3. Décision (decision1): branches basées sur le résultat de la validation.

Dans le sous-flux validateOrder :

  1. Script (script1) — vérifie que les champs requis sont présents et que le total de la commande est supérieur à zéro.

    const order = $vars.validateOrder.orderData;
    const isValid = order.items.length > 0
      && order.total > 0
      && order.customerId !== undefined;
    return { isValid: isValid, reason: isValid ? "OK" : "Missing required fields" };
    const order = $vars.validateOrder.orderData;
    const isValid = order.items.length > 0
      && order.total > 0
      && order.customerId !== undefined;
    return { isValid: isValid, reason: isValid ? "OK" : "Missing required fields" };
    
  2. Le sous-flux renvoie la sortie du script en tant que $vars.validateOrder.output.

Retour dans le processus parent:

Le nœud de décision évalue $vars.validateOrder.output.isValid === true et dirige soit un chemin d'exécution, soit un chemin de gestion des erreurs.

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour