- Introduction
- Démarrage
- Modélisation du processus avec BPMN
- Compréhension de la modélisation des processus
- Ouverture du canevas de modélisation
- Modéliser votre processus
- Alignement et connexion des éléments BPMN
- Autopilot pour Maestro (aperçu)
- Référentiel de processus
- Modélisation des processus avec la gestion des incidents
- Concevoir un schéma d'entité de cas persistant
- Définition des clés de cas (système vs. externe)
- Établissement des contrats d'E/S et de réécriture de la tâche
- Règles de sortie et fin de l’étape précoce
- Modélisation des étapes primaires et secondaires
- Déclencher un cas à partir de Data Fabric
- Implémentation des personas et des autorisations au niveau de l'étape
- Définition des SLA et des règles d'escalade automatisées
- Configuration d'une boucle de retraitement (renouvellement)
- Gestion des instances de cas en cours : suspendre, migrer et réessayer
- Dictionnaire des composants de gestion des incidents Maestro
- Modélisation des processus avec Flow
- Implémentation des processus
- Débogage
- Simulation
- Publication et mise à niveau des processus agentiques
- Scénarios de mise en œuvre courants
- Extraire et valider des documents
- Opérations de processus
- Surveillance des processus
- Optimisation des processus
- Informations de référence
Syntaxe des expressions JavaScript pour les variables, les opérateurs et les conditions dans les workflows de flux.
Les expressions de flux sont JavaScript. Ils référencent les variables avec le préfixe $vars et calculent les valeurs dans les champs de configuration, les conditions Décision et Basculer, et le code Script.
Pour connaître la façon dont les données sont déplacées entre les nœuds et le modèle de variables, consultez Variables et flux de données.
Références de variables
Chaque valeur que vous référencez se trouve sous $vars:
$vars.httpRequest1.output.body // node output
$vars.orderTotal // variable
$vars.manualTrigger1.output.userId // trigger input
$vars.httpRequest1.output.body // node output
$vars.orderTotal // variable
$vars.manualTrigger1.output.userId // trigger input
- Sortie du nœud:
$vars.<nodeName>.output. Chaque nœud expose son résultat sous.output. La forme de cet objet dépend du nœud, consultez donc la page de référence de chaque nœud pour ses champs de sortie. - Variables:
$vars.<name>. - Entrées du déclencheur:
$vars.<triggerName>.output.<inputName>.
Pour les propriétés imbriquées, utilisez la notation pointée. pour les éléments de tableau, utilisez la notation entre crochets:
$vars.httpRequest1.output.body.customer.email
$vars.httpRequest1.output.body.items[0].id
$vars.httpRequest1.output.body.customer.email
$vars.httpRequest1.output.body.items[0].id
Où vous écrivez des expressions
Le flux a deux modes, selon le champ:
Champs littéraux (texte) : intégrant une expression dans un texte voisine avec des doubles accolades. Utilisez cette option uniquement lorsque du texte d’invite ou de modèle est attendu:
https://api.example.com/users/{{ $vars.manualTrigger1.output.userId }}
https://api.example.com/users/{{ $vars.manualTrigger1.output.userId }}
Champs d'expression (conditions de décision et de commutateur, section Mettre à jour la variable) et Code de script — écrivez l'expression directement sans crochets:
$vars.httpRequest1.output.statusCode === 200
$vars.httpRequest1.output.statusCode === 200
Opérateurs
Les opérateurs JavaScript standard sont pris en charge:
| Opérateur | Exemple | Résultat |
|---|---|---|
| Égalité | $vars.status === "active" | true ou false |
| Inégalité | $vars.count !== 0 | true ou false |
| Comparaison | $vars.price > 100 | true ou false |
| Et logique | $vars.isVerified && $vars.isActive | true ou false |
| Ou logique | $vars.role === "admin" || $vars.role === "owner" | true ou false |
| Terminaire | $vars.count > 0 ? "has items" : "empty" | string |
Opérations de chaîne
"Hello, " + $vars.firstName
$vars.message.toUpperCase()
$vars.email.includes("@uipath.com")
"Hello, " + $vars.firstName
$vars.message.toUpperCase()
$vars.email.includes("@uipath.com")
Les modèles littéraux combinent des variables et du texte statique:
`Hello ${firstName}, your order #${orderId} has shipped.`
`Hello ${firstName}, your order #${orderId} has shipped.`
Chaîner facultative
Utilisez ?. en toute sécurité pour accéder à des propriétés non définies:
$vars.httpRequest1.output.body?.items?.[0]?.id
$vars.httpRequest1.output.body?.items?.[0]?.id
Renvoie undefined au lieu de générer une erreur de runtime si une propriété intermédiaire est nulle ou non définie.
Consolidation nulle
Utilisez ?? pour fournir une valeur par défaut lorsqu'une valeur est nulle ou non définie:
$vars.userName ?? "Anonymous"
$vars.userName ?? "Anonymous"
Erreurs courantes
| Symptôme | Origine | Que faire |
|---|---|---|
Une expression se résout vers undefined | Vous avez référencé la sortie d'un nœud avant l'exécution de ce nœud, ou un champ qui n'existe pas sur la sortie | Référencez uniquement la sortie des nœuds en amont; consultez la page de référence du nœud pour connaître ses champs de sortie réels. Utilisez un chaînage facultatif (?.) pour les propriétés pouvant être manquantes. |
| Une condition Décision ou Basculer se comporte de manière inattendue ou échoue | La condition n'est pas une expression booléenne à barres, par exemple, elle est écrite sous la forme d'une instruction return | Écrivez une expression simple qui se résout vers true ou false, par exemple $vars.order1.output.total > 1000. N'utilisez pas return. |
Cannot find name '$vars' (ou '$self' ) | La variable ne se trouve pas dans l’étendue à ce nœud, ou $self est utilisée sur un nœud qui ne produit aucune sortie | Référencez uniquement les variables affichées dans le sélecteur de variables pour ce nœud. $vars se résout uniquement vers les variables de l’étendue; $self est disponible uniquement sur les nœuds qui produisent une sortie. |
| Une valeur d’un autre nœud n’est pas disponible pour la référence | L’étendue est en amont uniquement: un nœud ne peut pas voir les nœuds en aval, les nœuds de branche frères ou les nœuds à l’intérieur d’une boucle qu’il a déjà quittée | Restructurez le nœud de production afin qu'il se trouve en amont à l'endroit où vous le référencez, ou portez la valeur via une variable qui se trouve dans l'étendue. |
$vars.<node>.error n'est pas disponible | La sortie d'erreur d'un nœud est dans l'étendue uniquement lorsque la gestion des erreurs est activée sur celui-ci (ou son chemin d'erreur est connecté) | Activez la gestion des erreurs sur le nœud ou connectez sa gestion des erreurs, puis référencez $vars.<node>.error. |
{{ }} s’affiche sous forme de texte littéral, ou un champ de texte ne résout pas | Incompatibilité du mode: {{ }} fonctionne uniquement dans les champs littéraux (textes) | Utilisez {{ $vars.x }} uniquement dans les champs de texte brut; dans les champs d'expression et dans les conditions de Décision et de Bascule, écrivez $vars.x directement sans crochets. |
Les conditions de décision et de commutateur s'exécutent sous forme d'expressions au moment du runtime. Une instruction return n'est valide que dans le code du nœud de script.
Remarques
- Les expressions sont évaluées au moment de l'exécution, et non au moment de la conception. Les erreurs de syntaxe apparaissent lorsque le nœud s’exécute.
- Une expression dans un champ de configuration doit correspondre au type attendu par le champ - un champ de condition doit se résoudre à
trueoufalse. - Les préfixes
=et=js:que vous pouvez voir dans un fichier.flowsont des formats de sérialisation internes. Vous ne les saisissez jamais dans l'éditeur. - La vérification du type est effectuée au mieux. Les références dans les sorties saisies librement (objets ou tableaux saisis en tant que
any) ne sont pas entièrement validées, de sorte qu’une faute de frappe dans un nom de champ imbriqué peut transmettre sans avertissement. Vérifiez à nouveau les chemins imbriqués par rapport à la sortie du nœud.