- 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
- Repo. de objetos
- La herramienta ScreenScrapeJavaSupport
- 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 del usuario de Studio
Invocar el archivo de origen de código
Utiliza este flujo de trabajo para invocar un archivo de origen codificado dentro de un flujo de trabajo de código bajo. En este ejemplo, creamos una clase llamada TimeSpanHelper en el archivo de origen codificado TimeSpanHelper.cs. Esta clase genera un período de tiempo aleatorio en función de los límites especificados. Para integrar esta clase en un flujo de trabajo de código bajo, utilizamos una actividad Invocar archivo de flujo de trabajo, seguida de otras actividades de código bajo, dependiendo del caso de uso.
- Crea un archivo de origen codificado. Para este ejemplo, nómbralo
TimeSpanHelper.cs. - En el archivo de origen codificado, crea una clase pública llamada TimeSpanHelper.
-
Dentro de la clase TimeSpanHelper, declara un objeto aleatorio estático privado llamado
_randompara generar valores aleatorios.private static Random _random = new Random();private static Random _random = new Random(); -
Declara un objeto estático privado llamado
_lockObjpara proteger el hilo, mientras trabajas con varios hilos al mismo tiempo.private static object _lockObj = new object();private static object _lockObj = new object(); -
Implementa un método estático público llamado
GetRandomTimeSpanBetweenque tome dos parámetros enteros:lowerBoundMsyupperBoundMs.public static TimeSpan GetRandomTimeSpanBetween(int lowerBoundMs, int upperBoundMs) {public static TimeSpan GetRandomTimeSpanBetween(int lowerBoundMs, int upperBoundMs) { -
Utiliza la declaración de bloqueo con
_lockObjpara proteger este hilo, mientras trabajas con varios hilos al mismo tiempo.lock (_lockObj) {lock (_lockObj) { -
Dentro del bloque de bloqueo, genera un valor entero aleatorio utilizando
_random.Nexty pasalowerBoundMsyupperBoundMscomo argumentos.var ms = _random.Next(lowerBoundMs, upperBoundMs);var ms = _random.Next(lowerBoundMs, upperBoundMs); -
Convierte el valor aleatorio generado en un objeto
TimeSpanutilizandoTimeSpan.FromMillisecondsy devuelve este valor directamente desde el método con el siguiente comando que devuelve:return TimeSpan.FromMilliseconds(ms);return TimeSpan.FromMilliseconds(ms);
-
En función de estos pasos, tu código final debe tener este aspecto:
public class TimeSpanHelper
{
private static Random _random = new Random();
private static object _lockObj = new object();
public static TimeSpan GetRandomTimeSpanBetween(int lowerBoundMs, int upperBoundMs)
{
lock (_lockObj)
{
var ms = _random.Next(lowerBoundMs, upperBoundMs);
return TimeSpan.FromMilliseconds(ms);
}
}
}
public class TimeSpanHelper
{
private static Random _random = new Random();
private static object _lockObj = new object();
public static TimeSpan GetRandomTimeSpanBetween(int lowerBoundMs, int upperBoundMs)
{
lock (_lockObj)
{
var ms = _random.Next(lowerBoundMs, upperBoundMs);
return TimeSpan.FromMilliseconds(ms);
}
}
}
- Crea un flujo de trabajo de código bajo. Para este ejemplo, nómbralo
WorkflowUsingCodeSourceFile. - Añade una actividad Mensaje de registro para generar un período de tiempo aleatorio entre dos y cuatro segundos.
- En el campo Mensaje, escribe el nombre del proyecto, llama al archivo de origen codificado y luego llama al método
GetRandomTimeSpanBetween.
En el siguiente ejemplo, CodedWorkflowInteroperability es el nombre del proyecto.
CodedWorkflowInteroperability.TimeSpanHelper.GetRandomTimeSpanBetween(2000, 4000)
CodedWorkflowInteroperability.TimeSpanHelper.GetRandomTimeSpanBetween(2000, 4000)