- Introduction
- Démarrage
- Créer sur n’importe quel canevas
- Créer avec le cas
- Référence (Reference)
- 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
- 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)
- Configurer et tester l'agent Case Manager (aperçu)
- Créer avec Flow
- Créer avec BPMN
- Opérations
- Surveillance
- Optimisation
- Informations de référence
Transition des expressions C# aux expressions JavaScript
Migrate Maestro Orchestrate processes from C# to JavaScript expressions to align with UiPath's unified scripting experience and deprecation timeline.
Objectif
This page helps you move existing Maestro Orchestrate processes from C# expressions to JavaScript expressions. UiPath is deprecating C# as an expression language in Maestro Orchestrate to provide a unified scripting experience, modern syntax highlighting, and broader compatibility with other Automation Cloud components.
C# expressions are deprecated. Maestro Orchestrate now shows a deprecation warning on all C# expressions, including the planned removal date.
JavaScript is the default expression language for all new Maestro Orchestrate development.
Ce que cette modification signifie
- Les expressions C# continuent de fonctionner et sont entièrement prises en charge jusqu’à ce qu’elles soient officiellement supprimées dans une publication future.
- New Maestro Orchestrate projects and features now use JavaScript expressions by default.
- Nous vous recommandons de migrer les expressions existantes vers JavaScript pour garantir la compatibilité future.
Si vous voyez un message d’alerte jaune, cela signifie que votre projet utilise actuellement l’ancien éditeur d’expressions C#. Vous pouvez continuer à utiliser vos expressions existantes, mais nous vous recommandons de commencer à les migrer vers JavaScript.
Principales différences en un coup d'œil
| Concept | Syntaxe C# | Syntaxe JavaScript | Remarques |
|---|---|---|---|
| Concaténation de string | "Hello " + name | "Hello " + name | Identique dans les deux langages. |
| Conversion de l'incident | userName.ToUpper() | userName.toUpperCase() | Le nom de la méthode utilise toUpperCase en minuscules. |
| Égalité | amount == 100 | amount === 100 | Utilisez === pour l’égalité stricte. |
| Nul ou vide | string.IsNullOrEmpty(x) | !x ou x === "" | JavaScript traite null et undefined comme étant faux. |
| Longueur des collections | items.Count | items.length | Le nom de la propriété diffère. |
| Expression conditionnelle | amount > 5000 ? "High" : "Low" | amount > 5000 ? "High" : "Low" | Même syntaxe dans les deux langages. |
| Interpolation de la string | $"Hello {name}" | `Hello ${name}` | Utilisez les apostrophes ouvrantes (`) pour les littéraux de modèle. |
| Dater maintenant | DateTime.Now | new Date() | Utilisez l’Object JavaScript Date. |
| Math | Math.Round(x) | Math.round(x) | Les noms de fonctions sont en minuscules dans JavaScript. |
Comment mettre à jour des expressions existantes
Pour migrer une expression C# vers JavaScript, ouvrez l'éditeur d'expressions pour chaque propriété affectée et adaptez la syntaxe à l'aide des équivalents de la table ci-dessus.
-
Ouvrez l’éditeur d’expressions pour chaque propriété ou condition de passerelle affectée.
-
Copiez l’expression C# et adaptez-la à l’aide de la syntaxe JavaScript (consultez la table Principales différences en un coup d'œil).
-
Utilisez Test dans l'éditeur pour confirmer le résultat.
-
Enregistrez et republiez votre processus.
Résultat : les expressions sont mises à jour à la syntaxe JavaScript et le processus est prêt à être publié sans avertissement d'obsolescence.
Lors de la migration de formules complexes, validez les noms des variables et assurez-vous que toutes les comparaisons de string utilisent ===.
Exemple de migration
Avant (C#)
vars.total = items.Sum(x => x.Price);
if (vars.total > 10000) vars.priority = "High";
vars.total = items.Sum(x => x.Price);
if (vars.total > 10000) vars.priority = "High";
Après (JavaScript)
vars.total = items.reduce((sum, x) => sum + x.Price, 0);
if (vars.total > 10000) vars.priority = "High";
vars.total = items.reduce((sum, x) => sum + x.Price, 0);
if (vars.total > 10000) vars.priority = "High";
Équivalents fréquemment utilisés
| Action commune | C# | JavaScript |
|---|---|---|
| Vérifier plusieurs conditions | (a && b) || c | (a && b) || c |
| Analyser un nombre | int.Parse(x) | parseInt(x) |
| Convertir en string | value.ToString() | String(value) |
| Arrondir à 2 décimales | Math.Round(x, 2) | Number(x.toFixed(2)) |
| Comparer en ignorant l'incident | name.Equals("UIPath", StringComparison.OrdinalIgnoreCase) | name.toLowerCase() === "uipath" |
Conseils de test
- Utilisez le bouton Tester dans l'éditeur d'expressions pour confirmer les sorties.
- Surveillez les différences de gestion nulle et de coercition de type (
===vs==). - Les strings et les nombres sont automatiquement convertis en JavaScript ; utilisez des moules explicites si la précision est critique.
Prochaines étapes
- Commencez à écrire de nouvelles expressions en JavaScript.
- Mettez à jour les Processes existants au fil du temps à l’aide de ce guide.
- Planifiez la migration à l’aide d’Autopilot ou de la traduction manuelle.
- Suivez les notes de publication futures afin de connaître la suppression éventuelle des expressions C#.