- Introducción
- Primeros pasos
- Crear en cualquier lienzo
- Crear con caso
- Referencia
- Definir claves de caso (de sistema o externo)
- Establecer contratos de entrada/salida y de escritura diferida de tareas
- Modelar las etapas principal y secundaria
- Iniciar un caso desde Data Fabric
- Implementar perfiles y permisos a nivel de etapa
- Establecer SLA y reglas de escalado automatizadas
- Configurar un bucle de reprocesamiento (reingreso)
- Configurar y probar el agente de Case Manager (vista previa)
- Crear con flujo
- Crear con BPMN
- En funcionamiento
- Supervisión
- Optimizando
- Información de referencia
Transición de C# a expresiones de JavaScript
Migrate Maestro Orchestrate processes from C# to JavaScript expressions to align with UiPath's unified scripting experience and deprecation timeline.
Propósito
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.
Qué significa este cambio
- Las expresiones C# siguen funcionando y son completamente compatibles hasta que se eliminen oficialmente en una versión futura.
- New Maestro Orchestrate projects and features now use JavaScript expressions by default.
- Te recomendamos que migres las expresiones existentes a JavaScript para garantizar la compatibilidad futura.
Si ves un mensaje de alerta amarillo, significa que tu proyecto utiliza actualmente el editor de expresiones C# antiguo. Puedes seguir trabajando con tus expresiones existentes, pero te recomendamos que comiences a migrarlas a JavaScript.
Diferencias clave de un vistazo
| Concepto | Sintaxis C# | Sintaxis JavaScript | Notas |
|---|---|---|---|
| Concatenación de cadenas | "Hello " + name | "Hello " + name | Idéntica en ambos lenguajes. |
| Conversión mayúsculas/minúsculas | userName.ToUpper() | userName.toUpperCase() | El nombre de método utiliza minúsculas toUpperCase. |
| Igualdad | amount == 100 | amount === 100 | Usa === para igualdad estricta. |
| Nulo o vacío | string.IsNullOrEmpty(x) | !x o x === "" | JavaScript trata null y undefined como falsy. |
| Longitud de colecciones | items.Count | items.length | El nombre de la propiedad difiere. |
| Expresión condicional | amount > 5000 ? "High" : "Low" | amount > 5000 ? "High" : "Low" | Misma sintaxis en ambos idiomas. |
| Interpolación de string | $"Hello {name}" | `Hello ${name}` | Usa backticks (`) para plantillas de cadena. |
| Fecha ahora | DateTime.Now | new Date() | Usa el objeto Date de JavaScript. |
| Math | Math.Round(x) | Math.round(x) | Los nombres de las funciones son en minúsculas en JavaScript. |
Cómo actualizar las expresiones existentes
Para migrar una expresión de C# a JavaScript, abre el Editor de expresiones para cada propiedad afectada y adapta la sintaxis utilizando los equivalentes de la tabla anterior.
-
Abre el Editor de expresiones para cada propiedad o condición de puerta de enlace afectada.
-
Copia la expresión C# y adáptala utilizando la sintaxis de JavaScript (consulta la tabla Diferencias principales).
-
Utiliza Prueba en el editor para confirmar el resultado.
-
Guarda y vuelve a publicar tu proceso.
Resultado: las expresiones se actualizan a la sintaxis de JavaScript y el proceso está listo para publicarse sin advertencias de obsolescencia.
Al migrar fórmulas complejas, valida los nombres de variables y asegúrate de que todas las comparaciones de string utilicen ===.
Ejemplo de migración
Antes (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";
Despué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";
Equivalentes utilizados con frecuencia
| Acción común | C# | Javascript |
|---|---|---|
| Comprobar varias condiciones | (a && b) || c | (a && b) || c |
| Analizar número | int.Parse(x) | parseInt(x) |
| Convertir a string | value.ToString() | String(value) |
| Redondear a 2 decimales | Math.Round(x, 2) | Number(x.toFixed(2)) |
| Comparar ignorando mayúsculas/minúsculas | name.Equals("UIPath", StringComparison.OrdinalIgnoreCase) | name.toLowerCase() === "uipath" |
Consejos de prueba
- Usa el botón Prueba en el editor de expresiones para confirmar las salidas.
- Ten en cuenta las diferencias en el manejo nulo y la coerción de tipo (
===frente a==). - Las cadenas y números se convierten automáticamente en JavaScript; utiliza conversiones explícitas si la precisíón es crítica.
Próximos pasos
- Comienza a escribir nuevas expresiones en JavaScript.
- Actualiza procesos existentes a lo largo del tiempo utilizando esta guía.
- Planifica la migración utilizando Autopilot o traducción manual.
- Haz un seguimiento de las notas de la versión futuras para la eventual eliminación de expresiones C#.