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 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é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
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ômeOrigineQue faire
Une expression se résout vers undefinedVous 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 sortieRé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 échoueLa 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 sortieRé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érenceL’é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éeRestructurez 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 disponibleLa 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 pasIncompatibilité 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 à 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 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.

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