- Notas relacionadas
- Primeros pasos
- Instalación y configuración
- Proyectos de automatización
- Dependencias
- Tipos de flujos de trabajo
- Flujo de control
- Comparación de archivos
- Mejores prácticas de automatización
- Integración del control de código fuente
- Depuración
- Registro
- La herramienta de diagnóstico
- Analizador de flujo de trabajo
- Acerca del analizador de flujo de trabajo
- ST-NMG-001: convención sobre nombres de variables
- ST-NMG-002: convención de nombres de argumentos
- ST-NMG-004: duplicación de nombres de visualización
- ST-NMG-005: anulación de variables
- ST-NMG-006: argumentos de anulación de variables
- ST-NMG-008: longitud variable excedida
- ST-NMG-009: variables de datos prefijados
- ST-NMG-011: argumentos de prefijo Datatable
- ST-NMG-012: valores predeterminados de los argumentos
- ST-NMG-016: longitud del argumento excedida
- ST-NMG-017: el nombre de la clase coincide con el espacio de nombres predeterminado
- ST-DBP-002: recuento de Argumentos elevado
- ST-DBP-003: bloque de Catch vacío
- ST-DBP-007: múltiples capas de diagramas de flujo
- ST-DPB-010: varias instancias de [flujo de trabajo] o [caso de prueba]
- ST-DBP-020: propiedades de salida no definidas
- ST-DBP-021: tiempo de espera codificado
- ST-DBP-023: flujo de trabajo vacío
- ST-DBP-024: comprobación de actividad de persistencia
- ST-DBP-025: requisito previo para la serialización de variables
- ST-DBP-026: retraso en el uso de la actividad
- ST-DBP-027: mejor práctica de persistencia
- ST-DBP-028: requisito de serialización de argumentos
- ST-USG-005: argumentos de actividad codificados
- ST-USG-009: variables no utilizadas
- ST-USG-010: dependencias sin utilizar
- ST-USG-014: restricciones de los paquetes
- ST-USG-017: modificador de parámetro no válido
- ST-USG-020: mensajes de registro mínimos
- ST-USG-024: guardado sin usar para más adelante
- ST-USG-025: uso incorrecto de los valores guardados
- ST-USG-026: restricciones de actividad
- ST-USG-027: paquetes necesarios
- ST-USG-028: Restringir la invocación de plantillas de archivo
- ST-USG-032 - Etiquetas obligatorias
- ST-USG-034 - URL Automation Hub
- Variables
- Argumentos
- Espacios de nombres importados
- Automatizaciones codificadas
- Introducción
- Registrar servicios personalizados
- Contextos Antes y Después
- Generando código
- Generar casos de prueba codificados a partir de casos de prueba manuales
- Integración de OpenAI con los flujos de trabajo codificados
- Solicita un préstamo con UiBank
- Generación de colas con flujos de trabajo codificados y API de Orchestrator
- Utilizar proyectos de biblioteca importados en automatizaciones codificadas
- Uso de la autenticación de dos factores dentro de automatizaciones codificadas
- Automatización atendida basada en desencadenadores
- Grabación
- Elementos de la IU
- Selectores
- Repo. de objetos
- Extracción de datos
- Automatización de imágenes y texto
- Acerca de la automatización de imágenes y texto
- Actividades con el ratón y el teclado
- Ejemplo de uso de la automatización de ratón y teclado
- Actividades de texto
- Ejemplo de uso de la automatización de texto
- Actividades de OCR
- Actividades de imagen
- Ejemplo de uso de la automatización de OCR y la automatización de imágenes
- Automatización de Citrix Technologies
- Automatización RDP
- Automatización de VMware Horizon
- Automatización de Salesforce
- Automatización SAP
- Automatización de IU de macOS
- La herramienta ScreenScrapeJavaSupport
- El protocolo WebDriver
- Extensiones
- Acerca de las extensiones
- Herramienta SetupExtensions
- UiPathRemoteRuntime.exe no se está ejecutando en la sesión remota
- UiPath Remote Runtime impide que la sesión de Citrix pueda cerrarse
- UiPath Remote Runtime provoca una fuga de memoria
- Las versiones del paquete UiPath.UIAutomation.Activities y UiPath Remote Runtime no coinciden
- La extensión de UiPath necesaria no está instalada en la máquina remota
- Configuración de la resolución de la pantalla
- Políticas de grupo
- No se puede comunicar con el navegador
- La extensión de Chrome se elimina automáticamente
- Es posible que la extensión se haya dañado
- Comprueba si la extensión para Chrome está instalada y habilitada
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Habilitar el acceso a las URL de archivos y el modo de incógnito
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- Lista de extensiones para Chrome
- Extensión de Chrome en Mac
- Políticas de grupo
- No se puede comunicar con el navegador
- La extensión de Edge se elimina automáticamente
- Es posible que la extensión se haya dañado
- Check if the Extension for Microsoft Edge is installed and enabled
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Enable access to file URLs and InPrivate mode
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- Lista de extensiones para Edge
- Extensión para Safari
- Extensión para VMware Horizon
- Extensión para Amazon WorkSpaces
- Complemento SAP Solution Manager
- Add-in de Excel
- Pruebas de Studio
- Solución de problemas
- Acerca de la resolución de problemas
- Errores de compilación del ensamblado
- Compatibilidad y limitaciones de Microsoft App-V
- Solución de problemas de Internet Explorer x64
- Problemas de Microsoft Office
- Identificación de elementos de la interfaz de usuario en PDF con opciones de accesibilidad
- Reparar Soporte Active Accessibility
- Validation of large Windows-legacy projects takes longer than expected

Guía de usuario de Studio
Máquinas de estado
linkUna máquina de estado es un tipo de automatización que utiliza un número finito de estados en su ejecución. Puede entrar en un estado cuando es desencadenada por una actividad, y sale de ese estado cuando se desencadena otra actividad.
Otro aspecto importante de las máquinas de estado son las transiciones, ya que también permiten añadir condiciones en función de las cuales saltar de un estado a otro. Se representan con flechas o ramas entre estados.
Hay dos actividades específicas de las máquinas estado, Estado y Estado final, y se encuentra en Flujo de trabajo > Máquina de estado.
La actividad Estado contiene tres secciones, Entrada, Salida y Transiciones, mientras que el Estado final contiene solo una sección, Entrada. Ambas actividades pueden ampliarse haciendo doble clic en ellas para ver más información y editarlas.
Las secciones Entrada y Salida te permiten añadir desencadenadores de entrada y salida para el estado seleccionado, mientras que en la sección Transiciones se muestran todas las transiciones vinculadas al estado seleccionado.
Las transiciones se expanden al hacer doble clic, como la actividad Estados. Contiene tres secciones, Desencadenador, Condición y Acción, que te permiten añadir un desencadenador para el siguiente estado, o añadir una condición con la que se ejecuta una actividad o secuencia.
Ejemplo de cómo usar una máquina de estado
linkPara ejemplificar cómo utilizar una máquina de estados, vamos a diseñar el juego de adivinanzas que hicimos en el capítulo anterior, con la única diferencia de que intentaremos adivinar un número entre 1 y 100.
- Crea un proceso vacío y, en la pestaña Diseño, en el grupo Archivo, selecciona Nuevo > Máquina de estado. Se muestra la ventana Nueva máquina de estado.Nota: También puedes añadir una actividad Máquina de estados al panel Diseñador para crear una nueva automatización de máquina de estados.
- En el campo Nombre, escribe un nombre para la automatización, como "Primera máquina de estado" y deja la ubicación del proyecto predeterminada o añade una subcarpeta. Haz clic en Crear. El panel Diseñador se actualiza en consecuencia.
- Crear dos variables de entero,
InitialGuess
yRandomNumber
. La primera variable almacena tu respuesta y la segunda almacena el número aleatorio. - Añade una actividad Estado al panel Diseñador y conéctala al nodo Inicio. Este es el estado inicial, y se usa para generar un número aleatorio.
- Haz clic dos veces en la actividad. Esta actividad Estado se muestra ampliada en el panel Diseñador.
- En el panel Propiedades, en el campo DisplayName, escribe Inicializar número aleatorio. Esto te permite diferenciar fácilmente los estados.
- En la sección Entrada, agrega una actividad Asignar.
- En el campo Para, añade la variable
RandomNumber
. - En el campo Valor, escribe
new Random().Next(1,100)
. Esta expresión genera un número aleatorio. - Vuelve a la vista principal del proyecto y añade una nueva actividad Estado.
- Conéctala a la actividad añadida previamente.
- Haz doble clic en la última actividad Estado añadida. Esta actividad se muestra ampliada en el panel Diseñador.
- En el panel Propiedades, en el campo DisplayName escribe Número para adivinar. Este estado se usa para pedir al usuario que adivine un número.
- En la sección Entrada, añade una actividad Diálogo de entrada.
- Selecciona el Diálogo de entrada, y en el panel Propiedades, añade una Etiqueta y Título de la etiqueta que pregunten al usuario un número de 1 y 100.
- En el campo Resultado agregar la variable
InitialGuess
. Esta variable almacena la respuesta del usuario. - Vuelve a la vista principal del proyecto y crea una transición que redirija desde el estado Número para adivinar a sí mismo.
- Haz clic dos veces en la transición. La transición se muestra ampliada en el panel Diseñador.
- En el panel Propiedades, en el campo DisplayName escribe Intenta un número menor. Este mensaje se muestra en la flecha, permitiéndote ejecutar más fácilmente a través de tu automatización.
- En la sección Condición, escribe
InitialGuess
>RandomNumber
. Esta verifica si la respuesta del usuario es mayor que el número aleatorio. - En la sección Acción añade una actividad Cuadro de mensajes.
- En el campo Texto, escribe algo similar a "Tu respuesta es demasiado grande. Prueba un número más pequeño". Este mensaje se muestra cunado la respuesta del usuario es mayor que el número aleatorio.
- Vuelve a la vista del proyecto y crea una nueva transición que apunte desde el estado Número para adivinar a sí mismo.
- Haz clic dos veces en la transición. La transición se muestra ampliada en el panel Diseñador.
- En el panel Propiedades, en el campo DisplayName escribe "Intenta un número mayor". Este mensaje se muestra en la flecha, permitiéndote ejecutar más fácilmente a través de tu automatización.
- En la sección Condición, escribe
InitialGuess
<RandomNumber
. Esto verifica si la respuesta es menor que el número aleatorio. - En la sección Acción añade una actividad Cuadro de mensajes.
- En el campo Texto, escribe algo similar a "respuesta incidencia es demasiado pequeña. Prueba un número mayor". Este mensaje se muestra cuando la respuesta del usuario es menor que el número aleatorio.
- Vuelve a la vista del proyecto y añade una actividad Estado final al panel Diseñador.
- Conecta una transición desde la actividad Número para adivinar al Estado final.
- En el panel Propiedades, en el campo DisplayName escribe "Correcto".
- En el campo Condición, escribe
InitialGuess
=RandomNumber
. Esta es la condición necesaria para que esta automatización se active en el estado final y termine. - Haz doble clic en la actividad Estado final. Se muestra ampliada en el panel Diseñador.
- En la sección Entrada, añade una actividad Cuadro de mensajes.
- En el campo Texto, escribe algo similar a "¡Felicidades! ¡Has acertado! El número era " +
RandomNumber.ToString
+ "." Este es el último mensaje que se mostrará, cuando el usuario adivina el número.El proyecto final debería verse como en la siguiente captura de pantalla.
- Pulsa F5. La automatización se ejecuta correctamente.