UiPath Documentation
maestro-automate
latest
false
Guide de l'utilisateur de Maestro Automate

Sous-flux

Group nodes into a subflow that runs as one step inside a workflow, pass data in and out of it, and scope its variables.

A subflow is a workflow embedded within another workflow, called the parent workflow. It groups a set of nodes into a self-contained unit that runs as part of the parent and returns output to it. Subflows organize complex logic into self-contained, manageable groups.

Mode de fonctionnement​

Lorsqu'un workflow 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, la partie d'un workflow où un nom peut être lu, de sorte que les variables définies à l'intérieur n'entrent pas en conflit avec les variables du workflow parent. Lorsque le sous-flux se termine, sa sortie est renvoyée au workflow parent et l'exécution se poursuit avec le nœud suivant.

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 workflow parent.

La sortie du sous-flux est accessible au workflow parent en tant que $vars.<subflowName>.output.

Ajout d'un sous-flux​

Un nœud de sous-flux est ajouté depuis le panneau Ajouter un nœud , où il est répertorié dans la catégorie Maestro Flow , et il se connecte au nœud qui se trouve avant. Il apparaît sur le canevas sous la forme d'un nœud avec une icône de couches empilée. Le bouton Explorer de la barre d'outils de survol du nœud ouvre l'intérieur du sous-flux comme sa propre zone de dessin. Un fil d'Ariane en haut à gauche, avec une icône d'accueil et le nom du sous-flux, vous ramène au workflow parent. L'intérieur commence par un nœud Démarrer connecté à un nœud Fin et a la même barre d'outils inférieure que le canevas principal, de sorte que les nœuds sont ajoutés de la même manière.

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

Entrées​

La section Entrées du panneau Propriétés du nœud de sous-flux définit les variables d’entrée du sous-flux et mappe les expressions de l’étendue parente à ces dernières. Ajouter une variable d'entrée ajoute une entrée. Chaque entrée a un nom, un type et une Valeur, une expression qui est évaluée dans l'étendue du workflow parent. Le menu Insérer du champ Valeur répertorie les valeurs de cette étendue, telles que les nœuds avant le sous-flux et $metadata.

À l'intérieur du sous-flux, les entrées sont les sorties du nœud Démarrer du sous-flux. Le menu Insérer répertorie ce nœud comme <subflowName>Start, par exemple $vars.subflow1Start.output.orderData. Le nœud Démarrer propose également Ajouter un argument d'entrée.

Sortie​

La section Sorties du nœud du sous-flux définit les variables de sortie du sous-flux. Ajouter une variable de sortie en ajoute une, et les valeurs sont mappées via les mappages de sortie du nœud Fin à l'intérieur du sous-flux. La sortie est disponible pour le workflow parent en tant que $vars.<subflowName>.output, et chaque variable de sortie est un champ de celle-ci, par exemple $vars.subflow1.output.isValid. Tout nœud après le sous-flux peut le référencer dans une expression, comme avec 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. Les variables mises à jour dans un sous-flux sont nommées, c'est-à-dire préfixées avec le nom du sous-flux, pour éviter les conflits avec le workflow parent.

De l'extérieur du sous-flux, les variables internes d'un sous-flux sont référencées 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 dans le workflow 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 workflow 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. Les noms de variable n'ont pas besoin d'être coordonnés entre le parent et le sous-flux.

Exemple pratique​

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

Le workflow parent a trois nœuds:

  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 la commande et renvoie un résultat.
  3. Décision (decision1): branches basées sur le résultat de la validation.

Le sous-flux validateOrder a un nœud, Script (script1), qui vérifie que les champs requis sont présents et que le total de la commande est supérieur à zéro:

const order = $vars.validateOrderStart.output.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.validateOrderStart.output.orderData;
const isValid = order.items.length > 0
  && order.total > 0
  && order.customerId !== undefined;
return { isValid: isValid, reason: isValid ? "OK" : "Missing required fields" };

La section Sorties du nœud de sous-flux définit une variable de sortie nommée isValid avec le type de données Booléen, et le nœud Fin à l'intérieur du sous-flux la mappe à $vars.script1.output.isValid. De retour dans le workflow parent, le nœud de décision évalue $vars.validateOrder.output.isValid === true et redirige soit vers un chemin d'exécution, soit vers un chemin de gestion des erreurs.

Prochaines étapes​

  • Variables et flux de données: règles d'étendue des variables, syntaxe des expressions et modèles d'accès $vars .
  • Canevas de flux: le canevas, le panneau Propriétés et le panneau Ajouter un nœud.
  • Gestion des erreurs: configuration des gestions d’erreurs sur les nœuds, y compris à l’intérieur des sous-flux.
  • Community (Communauté): posez des questions et partagez des workflows avec d'autres développeurs sur le forum UiPath.

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

Connecter

Besoin d'aide ? Assistance(opens in new window)

Vous souhaitez apprendre ? UiPath Academy(opens in new window)

Vous avez des questions ? UiPath Forum(opens in new window)

Rester à jour