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

Script

Le nœud Script exécute le code JavaScript et renvoie son résultat, avec la configuration, l'environnement JavaScript et des exemples.

Ce qu’il fait​

Exécute le code JavaScript, puis transmet la valeur de retour aux nœuds qui se trouvent après.

Référence de la configuration​

ChampRequisDefaultDescription
CodeOui (Yes)Aucun (None)Code JavaScript à exécuter. Il doit contenir une instruction return , et la valeur renvoyée devient la sortie du nœud.

L'environnement JavaScript​

Les scripts s'exécutent dans un runtime isolé et ont accès à :

  • $vars: l'étendue de la variable du workflow. La sortie des nœuds antérieurs est disponible en tant que $vars.<nodeName>.<property>.
  • $metadata: informations sur l'exécution, telles que InstanceId.
  • Intégrations JavaScript standard, telles que JSON, Math, Date, Array, Object, String, Number, RegExp, Error, Promise, URL, URLSearchParams, et les fonctions de minuterie.

Pour des raisons de sécurité, le runtime bloque les API réseau (fetch, XMLHttpRequest, WebSocket), l’exécution dynamique du code (eval, Function) et les API de stockage (indexedDB, caches). Pour appeler une API externe, le nœud de requête HTTP est l'alternative.

Les scripts sont destinés à une logique rapide et en mémoire : veillez à ce qu'ils restent rapides et évitez de traiter de très grandes charges utiles, qui peuvent dépasser les limites de runtime ou le délai d'expiration.

Accès à la sortie du nœud en amont​

Les nœuds antérieurs sont lus avec $vars.<nodeName>.<property>, où <nodeName> est l'ID du nœud, affiché dans l'onglet Avancé de son panneau Propriétés:

// Access HTTP Request node response
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.code;

// Access a workflow variable
const count = $vars.myVariable;
// Access HTTP Request node response
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.code;

// Access a workflow variable
const count = $vars.myVariable;

RetournerValeur​

Le script doit renvoyer une valeur. La valeur renvoyée devient la sortie du nœud, accessible en aval comme $vars.<nodeName>.output :

return {
  message: "Processed",
  count: items.length
};
return {
  message: "Processed",
  count: items.length
};

Entrées et sorties​

Entrée​

Le nœud Script peut accéder à n'importe quelle variable en amont via $vars. Il ne dispose pas de schéma d'entrée typé ; tout ce qui se trouve dans $vars est disponible.

Sortie​

Si cela réussit, la sortie sera $vars.<nodeName>.output, soit la valeur de retour du script. Sa forme dépend de ce que renvoie le script.

En cas d'échec, lorsqu'une gestion des erreurs est connectée, l'erreur est $vars.<nodeName>.error:

{
  "code": "string",
  "message": "string",
  "detail": "string",
  "category": "string",
  "status": 0
}
{
  "code": "string",
  "message": "string",
  "detail": "string",
  "category": "string",
  "status": 0
}

Générer des scripts avec l'IA​

L'icône en forme d'étoile au-dessus de l'éditeur de code accepte une description en langage clair de ce que vous voulez et génère le JavaScript pour vous. Cela est utile pour accéder à la sortie d'un nœud en amont ou pour écrire une transformation rapide sans rechercher la syntaxe $vars exacte.

Exemples​

Exemple 1: calculer les valeurs pour les nœuds ultérieurs​

// Set a variable that downstream nodes can reference
return {
  orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity,
  currency: "USD"
};
// Set a variable that downstream nodes can reference
return {
  orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity,
  currency: "USD"
};

Les nœuds en aval accèdent aux valeurs comme $vars.script1.output.orderTotal et $vars.script1.output.currency.

Exemple 2: lire une réponse HTTP​

const data = $vars.httpRequest1.output.body;

return {
  title: data.title,
  userId: data.userId
};
const data = $vars.httpRequest1.output.body;

return {
  title: data.title,
  userId: data.userId
};

Exemple 3: logique conditionnelle​

const status = $vars.httpRequest1.output.code;

if (status === 200) {
  return { success: true, data: $vars.httpRequest1.output.body };
} else {
  return { success: false, statusCode: status };
}
const status = $vars.httpRequest1.output.code;

if (status === 200) {
  return { success: true, data: $vars.httpRequest1.output.body };
} else {
  return { success: false, statusCode: status };
}

Exemple 4: transformer un tableau​

const items = $vars.fetchItems1.output.body;

return {
  count: items.length,
  names: items.map(item => item.name)
};
const items = $vars.fetchItems1.output.body;

return {
  count: items.length,
  names: items.map(item => item.name)
};

Choix entre le script et la transformation de données​

Utiliser un script lorsque...Utiliser la transformation des données lorsque...
Vous avez besoin d'une logique JavaScript complète - boucles, conditionnels, manipulation de chaînesVous avez besoin d'un mappage de champs simple ou d'une transformation sans code
Vous souhaitez calculer quelque chose à partir de la sortie du nœud en amontVous souhaitez un mappeur visuel sans écrire de code
La transformation est complexe ou avec étatLa transformation est un remodelage simple

Prochaines étapes​

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