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.

Syntaxe de l'expression

Syntaxe de l'expression JavaScript pour les variables, les opérateurs et les conditions dans les workflows Flow.

Les expressions Flow sont JavaScript. Ils font référence aux variables avec le préfixe $vars et calculent les valeurs dans les champs de configuration, les conditions de décision ou de bascule, et le code de script.

Pour savoir comment les données se déplacent entre les nœuds et le modèle de variables en profondeur, consultez la section Variables et flux de données.

Références de variables​

Chaque valeur à laquelle vous faites référence est disponible 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 de déclencheur : $vars.<triggerName>.output.<inputName>.

Pour les propriétés imbriquées, utilisez la notation par points ; pour les éléments du 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​

Flow a deux modes, en fonction du champ :

Champs littéraux (texte) - intégrez une expression dans le texte environnant avec des doubles accolades. Utilisez cette option uniquement lorsqu'un texte d'invite ou modélisé 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 basculie, section Mettre à jour la variable) et code de script - écrivez l'expression directement, sans parenthèses :

$vars.httpRequest1.output.statusCode === 200
$vars.httpRequest1.output.statusCode === 200

Opérateurs​

Les opérateurs JavaScript standard sont pris en charge :

OpérateurExempleRésultat
Égalité$vars.status === "active"true ou false
Inégalité$vars.count !== 0true ou false
Comparaison$vars.price > 100true ou false
Et logique$vars.isVerified && $vars.isActivetrue ou false
Ou logique$vars.role === "admin" || $vars.role === "owner"true ou false
Ternaire$vars.count > 0 ? "has items" : "empty"string

Chaîne d'opérations​

"Hello, " + $vars.firstName
$vars.message.toUpperCase()
$vars.email.includes("@uipath.com")
"Hello, " + $vars.firstName
$vars.message.toUpperCase()
$vars.email.includes("@uipath.com")

Les littéraux de modèle combinent des variables et du texte statique :

`Hello ${firstName}, your order #${orderId} has shipped.`
`Hello ${firstName}, your order #${orderId} has shipped.`

Chaînage optionnel​

Utilisez ?. pour accéder en toute sécurité aux propriétés qui peuvent être 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.

Coalescence 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ômeOrigineQue faire
Une expression se résout par undefinedVous avez fait référence à la sortie d'un nœud avant que ce nœud ne s'exécute, ou un champ qui n'existe pas sur la sortieRéférencez la sortie uniquement à partir des nœuds en amont ; vérifiez la page de référence du nœud pour connaître ses champs de sortie réels. Utilisez l'enchaînement facultatif (?.) pour les propriétés qui peuvent être manquantes.
Une condition de décision ou de bascule se comporte de manière inattendue ou échoueLa condition n'est pas une expression booléenne nue, par exemple, elle est écrite comme une déclaration returnÉcrivez une expression simple qui se résout par true ou false, par exemple $vars.order1.output.total > 1000. N'utilisez pas return.
Cannot find name '$vars' (ou '$self' )La variable n'est pas dans l'étendue de ce nœud ou $self est utilisée sur un nœud qui ne produit aucune sortieUtilisez uniquement les variables affichées dans le sélecteur de variables pour ce nœud. $vars se résout uniquement aux 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 être référencéeL'étendue est en amont uniquement - un nœud ne peut pas voir les nœuds en aval, les nœuds de branche sœur ou les nœuds dans une boucle qu'il a déjà quittéeRestructurez afin que le nœud de production soit en amont de l'endroit où vous le référencez ou transmettez la valeur via une variable qui est dans l'étendue.
$vars.<node>.error n'est pas disponibleLa sortie d'erreur d'un nœud est dans l'étendue uniquement lorsque la gestion des erreurs est activée (ou que son chemin d'erreur est connecté)Activez la gestion des erreurs sur le nœud ou connectez sa gestion des erreurs, puis faites référence à $vars.<node>.error.
{{ }} s'affiche comme texte littéral ou un champ de texte ne se résout pasIncompatibilité du mode : {{ }} fonctionne uniquement dans les champs littéraux (texte)Utilisez {{ $vars.x }} uniquement dans les champs en texte brut ; dans les champs d'expression et dans les conditions Décision et Basculer, écrivez $vars.x directement sans accolades.

Les conditions Décisions et Basculer s'exécutent comme des expressions lors du runtime. Une instruction return est valide uniquement dans le code du nœud Script.

Remarques​

  • Les expressions sont évaluées lors du runtime, et non au moment de la conception. Les erreurs de syntaxe apparaissent lorsque le nœud s'exécute.
  • Une expression d'un champ de configuration doit se résoudre avec le type que le champ attend - un champ de condition doit se résoudre avec true ou false.
  • Les préfixes = et =js: que vous pouvez voir dans un fichier .flow sont des formats de sérialisation internes. Vous ne les tapez jamais dans l'éditeur.
  • La vérification du type est effectuée au mieux. Les références dans les sorties à typage souple (objets ou tableaux typés comme any) ne sont pas entièrement validées, de sorte qu'une erreur de frappe dans un nom de champ imbriqué peut passer sans avertissement - revérifiez les chemins imbriqués par rapport à la sortie du nœud.

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