- Información general
- Automatización de IU
- Acerca del paquete de actividades de automatización de IU
- Aplicaciones y tecnologías automatizadas con UI Automation
- Compatibilidad de proyectos
- UI-ANA-016: Introducir URL para abrir el navegador
- UI-ANA-017: ContinueOnError verdadero
- UI-ANA-018: enumerar actividades de OCR / imagen
- UI-DBP-006: uso del contenedor
- UI-DBP-013: uso incorrecto de la automatización de Excel
- UI-DBP-030: uso de variables prohibidas en selectores
- UI-DBP-031: verificación de actividad
- UI-PRR-001: Simular clic
- UI-PRR-002: Simular tipo
- UI-PRR-003: uso incorrecto de aplicación abierta
- UI-PRR-004: retrasos codificados
- UI-REL-001: Idx grande en selectores
- UI-SEC-004: datos de correo electrónico del selector
- UI-SEC-010: Restricciones de aplicaciones / URL
- UI-USG-011: atributos no permitidos
- UX-SEC-010: restricciones de aplicaciones / URL
- UX-DBP-029: uso no seguro de contraseña
- UI-PST-001: nivel de registro de auditoría en la configuración del proyecto
- Herramienta de migración del navegador de UiPath
- Recorte de región
- Grabadora de Computer Vision
- 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
- Índice de actividades
- Activar
- Base de anclaje
- Asociar navegador
- Asociar ventana
- Bloquear entrada de usuario
- Aviso
- Comprobar
- Clic
- Clic en imagen
- Desencadenador de clic de imagen
- Clic en texto OCR
- Clic en el texto
- Desencadenador de clic
- Cerrar aplicación
- Cerrar pestaña
- Cerrar ventana
- Anclaje consciente de contexto
- Copiar texto seleccionado
- Desencadenador de cambio del atributo del elemento
- Elemento existente
- Ámbito del elemento
- Desencadenador de cambio de estado de elemento
- Exportar el árbol de la IU
- Extraer datos estructurados
- Buscar elementos secundarios
- Buscar elemento
- Buscar imagen
- Buscar coincidencias de imágenes
- Buscar texto OCR
- Buscar elemento relativo
- Buscar posición de texto
- Obtener ventana activa
- Obtener antecesor
- Obtener atributo
- Obtener información de atributo
- Obtener a partir del portapapeles
- Obtener texto completo
- Obtener texto OCR
- Obtener contraseña
- Obtener posición
- Obtener elemento de origen
- Obtener texto
- Obtener texto visible
- Volver
- Avanzar
- Ir a inicio
- Google Cloud Vision OCR
- Ocultar ventana
- Resaltar
- Desencadenador de tecla de acceso rápido
- Mantener el puntero
- Mantener el puntero en imagen
- Mantener el puntero sobre texto OCR
- Mantener el puntero en el texto
- Imagen existente
- Indicar en pantalla
- Insertar código .NET
- Inject Js Script
- Invocar método de ActiveX
- Desencadenador de pulsación de tecla
- Cargar imagen
- Maximizar ventana
- Microsoft Azure Computer Vision OCR
- Microsoft OCR
- Microsoft Project Oxford Online OCR
- Minimizar ventana
- Supervisar eventos
- Desencadenador del ratón
- Mover ventana
- Ir a
- Texto OCR existente
- Apariencia en elemento
- Fuga en elemento
- Apariencia en imagen
- Fuga en imagen
- Abrir aplicación
- Abrir navegador
- Actualizar navegador
- Reproducir evento de usuario
- Restaurar ventana
- Guardar imagen
- Seleccionar elemento
- Seleccionar varios elementos
- Enviar tecla de acceso rápido
- Establecer región de recorte
- Establecer foco
- Establecer texto
- Establecer en portapapeles
- Establecer atributo web
- Mostrar ventana
- Iniciar proceso
- Desencadenador del sistema
- Realizar captura
- Tesseract OCR
- Texto existente
- Información sobre herramientas
- Escribir en
- Escribir Texto Seguro
- Utilizar primer plano
- Esperar a atributo
- Esperar a fuga de elemento
- Esperar a fuga de imagen
- Comprobación de accesibilidad
- Desencadenador de eventos de aplicación
- Bloquear entrada de usuario
- Marcar/Desmarcar
- Comprobar estado de aplicación
- Comprobar elemento
- Clic
- Clic desencadenador de eventos
- Arrastrar y soltar
- Extraer datos de tabla
- Buscar elementos
- Para cada elemento de interfaz de usuario
- Obtener datos del navegador
- Obtener Portapapeles
- Obtener texto
- Obtener URL
- Ir a URL
- Resaltar
- Mantener el puntero
- Inject Js Script
- Atajos del teclado
- Desencadenador de eventos de pulsación de tecla
- Desplazamiento del ratón
- Navegar por el navegador
- Seleccionar elemento
- Establecer datos del navegador
- Configurar el portapapeles
- Establecer navegador de Runtime
- Establecer foco
- Establecer texto
- Realizar captura
- Escribir en
- Desbloquear entrada de usuario
- Utilizar Aplicación/Navegador
- Operación de ventana
- Transacción de llamada
- Clic en imagen en pantalla
- Hacer clic en botón de barra de herramientas
- Expandir tabla jerárquica ALV
- Expandir árbol ALV
- Expandir árbol
- Lectura de barra de estado
- Inicio de sesión en SAP
- Inicio de sesión en SAP
- Desencadenador de cambio de atributos de sesión de SAP
- Seleccionar fechas en el calendario
- Seleccionar elemento de menú
- Ámbito de la celda de la tabla
- Transacción de llamada
- Clic en imagen en pantalla
- Hacer clic en botón de barra de herramientas
- Expandir tabla jerárquica ALV
- Expandir árbol ALV
- Expandir árbol
- Lectura de barra de estado
- Inicio de sesión en SAP
- Inicio de sesión en SAP
- Seleccionar fechas en el calendario
- Seleccionar elemento de menú
- Ámbito de la celda de la tabla
- Realizar búsquedas en el navegador y recuperar resultados mediante las API de automatización de IU
- Exploración web
- Buscar imágenes
- Hacer clic en imágenes
- Eventos de desencadenador y supervisor
- Crear y anular archivos
- Páginas HTML: extraer y manipular información
- Manipulación de ventana
- Selección de lista automatizada
- Buscar y manipular elementos de ventana
- Gestionar automatización de texto
- Cargar y procesar imágenes
- Gestionar acciones activadas por el ratón
- Automatizar tiempo de ejecución de aplicación
- Ejecución automática de una aplicación local
- Navegación de explorador
- Automatización web
- Ejemplo de ámbito de desencadenador
- Habilitar soporte de automatización de IU en DevExpress
- Computer Vision Local Server
- Automatización móvil
- Notas relacionadas
- Acerca de la arquitectura de automatización de dispositivos móviles
- Compatibilidad de proyectos
- Obtener tipos de registro
- Obtener registros
- Obtener origen de la página
- Obtener la orientación del dispositivo
- Obtener identificador de sesión
- Instalar aplicación
- Administrar aplicación actual
- Administrar otras aplicaciones
- Abrir enlace profundo
- Abrir URL
- Conexión de dispositivo móvil
- Deslizamiento direccional
- Patrón de dibujo
- Pase de dedo posicional
- Pulse un botón del hardware
- Establecer orientación del dispositivo
- Realizar captura
- Tomar parte de la captura de pantalla
- Elemento existente
- Ejecutar comando
- Obtener atributo
- Obtener elemento seleccionado
- Obtener texto
- Establecer elemento seleccionado
- Establecer texto
- Deslizamiento
- Pulsar
- Escribir Texto
- Primeros pasos con las API de automatización móvil
- Gestionar cuadros de diálogo emergentes en automatizaciones móviles
- Creating variables from selector attributes
- Creación de flujos de trabajo de automatización móvil
- Utilizar automatización móvil para una aplicación de banca móvil
- Automatización para aplicaciones React Native
- Terminal
- Notas relacionadas
- Acerca del paquete de actividades de Terminal
- Compatibilidad de proyectos
- Mejores prácticas
- Buscar texto
- Obtener color de la posición
- Obtener la posición del cursor
- Obtener campo
- Obtener campo en posición
- Obtener área de pantalla
- Obtener texto
- Obtener texto en posición
- Mover cursor
- Mover cursor al texto
- Enviar tecla de control
- Teclas de envío
- Teclas de envío seguras
- Establecer campo
- Configurar campo en posición
- Sesión del terminal
- Esperar texto de campo
- Esperar a que la pantalla esté lista
- Esperar texto en pantalla
- Esperar texto en posición
- API de automatización codificadas de terminal

Actividades UIAutomation
API de automatización codificadas de terminal
UiPath.Terminal.Activities
API de flujo de trabajo codificado para automatizar sesiones de emulación de terminal. Proporciona métodos para establecer conexiones a IBM 3270/5250, VT, HP, ANSI, Wyse y otros sistemas de terminal heredados a través de BlueZone, IBM PCOMM, Attachmate o conexiones directas TCP/SSH, y luego interactuar con la pantalla del terminal mediante programación.
Accesorio de servicio: terminal (tipo ITerminalService) Paquete requerido: "UiPath.Terminal.Activities": "*" en las dependencias de project.json
Espacios de nombres importados automáticamente
Estos espacios de nombres están disponibles automáticamente en los flujos de trabajo codificados cuando se instala este paquete:
UiPath.Terminal
UiPath.Terminal.Data
UiPath.Terminal.Activities.API
UiPath.Terminal.Enums
UiPath.Terminal
UiPath.Terminal.Data
UiPath.Terminal.Activities.API
UiPath.Terminal.Enums
Descripción general del servicio
El servicio terminal proporciona métodos de fábrica que abren una conexión de terminal y devuelven un objeto TerminalConnection . El objeto de conexión es la superficie API para todas las operaciones del terminal: lecturas de pantalla, acceso a campos, envío de claves y espera.
Esta es una API basada en conexión:
- Llame a un método de servicio (
GetConnection/GetSshConnection) para abrir y conectarse. - Utiliza el
TerminalConnectiondevuelto para realizar operaciones de terminal. - Deshazte de la conexión cuando hayas terminado (o utiliza una instrucción
using).
En el modo de flujo de trabajo codificado, todos los métodos TerminalConnection arrojan TerminalConnectionException en caso de fallo en lugar de devolver códigos de error. Esto significa que no es necesario comprobar los valores devueltos, solo gestionar las excepciones.
Métodos de conexión
TerminalConnection GetConnection(string connectionString)
Abre una conexión de terminal utilizando una cadena de conexión serializada. La cadena de conexión codifica el tipo de proveedor, host, puerto, protocolo y otras configuraciones. Utiliza el cuadro de diálogo Configuración de conexión de la actividad XAML de sesión de terminal para generar una cadena válida.
Parámetros:
connectionString(string) — Cadena de conexión serializada. Ejemplo: obtenido configurando una actividad de sesión de terminal y copiando el valor de propiedadConnectionString.
Devuelve: TerminalConnection : una sesión de terminal abierta y conectada. Implementa IDisposable; utilizar dentro de una instrucción using .
Lanza: TerminalConnectionException si la conexión no se puede establecer dentro del tiempo de espera.
TerminalConnection GetConnection(ConnectionData connectionData)
Abre una conexión de terminal utilizando un objeto ConnectionData , lo que permite la configuración programática sin una cadena de conexión serializada.
Parámetros:
connectionData(ConnectionData): objeto de configuración que especifica la configuración del proveedor, host, puerto, protocolo y emulación.
Devuelve: TerminalConnection : una sesión de terminal abierta y conectada.
Lanza: TerminalConnectionException si no se puede establecer la conexión.
TerminalConnection GetSshConnection(ConnectionData connectionData, string sshUser, SecureString sshPassword)
Abre una conexión de terminal SSH con credenciales explícitas. El connectionData debe especificar ProviderType = UiPathNew y ConnectionProtocol = SSH.
Parámetros:
connectionData(ConnectionData) — Configuración de la conexión. Debe tenerProviderType = TerminalProviderType.UiPathNewyConnectionProtocol = CommunicationType.SSH.sshUser(string): nombre de usuario SSH.sshPassword(SecureString) — Contraseña SSH. Utiliza una variableSecureString(por ejemplo, de Obtener credencial) para evitar la exposición de texto sin formato.
Devuelve: TerminalConnection : una sesión de terminal SSH abierta y conectada.
Lanza: TerminalConnectionException si la conexión falla, o ArgumentException si ProviderType o ConnectionProtocol no son válidos.
ConexiónDeTerminal
TerminalConnection es el identificador devuelto por todos los métodos de servicio. Proporciona todas las operaciones de interacción del terminal e implementa IDisposable.
Este tipo implementa IDisposable. Utilizar siempre dentro de una instrucción using o llamar Dispose() / Shutdown() explícitamente. La eliminación desconecta la sesión y finaliza cualquier proceso del host.
Propiedades
| Propiedad | Tipo | Descripción |
|---|---|---|
Connected | bool | true si la sesión está actualmente conectada al host. |
ConnectionString | string | La cadena de conexión serializada utilizada para establecer esta conexión. |
DefaultCmdOptions | CommandOptions | Las opciones predeterminadas de tiempo de espera y modo de espera se aplican a todas las operaciones cuando no se anulan explícitamente. |
Events
| Evento | Descripción |
|---|---|
TerminalScreenChanged | Se genera cuando cambia el contenido de la pantalla del terminal. |
TerminalFieldChanged | Se genera cuando cambia un valor de campo. |
TerminalCursorChanged | Se eleva cuando cambia la posición del cursor. |
TerminalConnectionChanged | Se genera cuando cambia el estado de la conexión (por ejemplo, conectar/desconectar). |
TerminalErrorRaised | Se genera cuando se produce un error de terminal de forma asíncrona. |
Métodos de lectura de pantalla
TerminalResultCode GetText(out string text, CommandOptions options = null)
Lee todo el contenido de texto visible de la pantalla del terminal.
Parámetros:
text(out string): recibe el texto de pantalla completa.options(CommandOptions, opcional): tiempo de espera y modo de espera. El valor predeterminado esDefaultCmdOptions.
Devuelve: TerminalResultCode.Success (o lanza TerminalConnectionException en caso de fallo en el modo de flujo de trabajo codificado).
TerminalResultCode GetTextAtPosition(TerminalField criteria, int? length, out string text, CommandOptions options = null)
Lee el texto de la pantalla a partir de la posición definida por criteria. Limita de forma opcional el número de caracteres leídos.
Parámetros:
criteria(TerminalField) — Define la posición de inicio a través deRowStart/ColStart.length(int?, opcional): número de caracteres a leer.nulllee hasta el final de la línea.text(out string): recibe el texto leído desde la posición.options(CommandOptions, opcional): tiempo de espera y modo de espera.
TerminalResultCode GetScreenArea(TerminalField criteria, out string text, CommandOptions options = null)
Lee texto de una región rectangular de la pantalla definida por criteria.
Parámetros:
criteria(TerminalField): define la región utilizandoRowStart,ColStart,RowEnd,ColEnd.text(out string): recibe el texto de la región.options(CommandOptions, opcional): tiempo de espera y modo de espera.
TerminalResultCode GetColorAtPosition(int row, int column, out Color color, CommandOptions options = null)
Obtiene el color de primer plano del carácter en la posición especificada.
Parámetros:
row(int) — Fila (basada en 1).column(int) — Columna (basada en 1).color(out Color) — Recibe el valorSystem.Drawing.Color.options(CommandOptions, opcional): tiempo de espera y modo de espera.
ScreenData GetScreen(CommandOptions options = null)
Devuelve el objeto de datos de pantalla sin procesar, incluidos todos los atributos de campo y los datos de caracteres.
Parámetros:
options(CommandOptions, opcional): tiempo de espera y modo de espera.
Devuelve: ScreenData con contenido de pantalla y metadatos de campo, o null si no está conectado.
Métodos de campo
TerminalResultCode GetField(TerminalField field, out string text, CommandOptions options = null)
Lee el contenido de texto de un campo identificado por sus criterios (etiqueta, índice o coordenadas).
Parámetros:
field(TerminalField) — Identificación de campo. Establece las propiedadesLabeledBy,FollowedBy,Indexo coordenadas.text(out string) — Recibe el texto del campo.options(CommandOptions, opcional): tiempo de espera y modo de espera.
TerminalResultCode SetField(TerminalField criteria, string text, CommandOptions options = null)
Escribe texto en el campo que coincide con los criterios.
Parámetros:
criteria(TerminalField) — Identificación de campo. Establece las propiedadesLabeledBy,FollowedBy,Indexo coordenadas.text(string) — Texto a escribir.options(CommandOptions, opcional): tiempo de espera y modo de espera.
Métodos de cursor
TerminalResultCode GetCursorPosition(out CursorPosition cursorPosition, CommandOptions options = null)
Obtiene la fila y la columna actuales del cursor del terminal.
Parámetros:
cursorPosition(out CursorPosition) — Recibe la posición del cursor (Row,Column).options(CommandOptions, opcional): tiempo de espera y modo de espera.
TerminalResultCode MoveCursor(int row, int column, CommandOptions options = null)
Mueve el cursor del terminal a la fila y columna especificadas.
Parámetros:
row(int) — Fila de destino (basada en 1).column(int) — Columna de destino (basada en 1).options(CommandOptions, opcional): tiempo de espera y modo de espera.
TerminalResultCode MoveCursor(CursorPosition cursor, CommandOptions options = null)
Mueve el cursor utilizando un objeto CursorPosition .
Parámetros:
cursor(CursorPosition) — Posición de destino.options(CommandOptions, opcional): tiempo de espera y modo de espera.
Métodos de envío clave
TerminalResultCode SendKeys(string keys, CommandOptions options = null)
Envía una cadena de texto al terminal en la posición actual del cursor.
Parámetros:
keys(string) — Texto a enviar.options(CommandOptions, opcional): tiempo de espera y modo de espera.
TerminalResultCode SendKeysSecure(SecureString keys, CommandOptions options = null)
Envía un SecureString al terminal. La cadena se descifra en la memoria, se envía y luego el búfer no administrado se pone a cero. Utilízalo para contraseñas.
Parámetros:
keys(SecureString) — Texto seguro para enviar.options(CommandOptions, opcional): tiempo de espera y modo de espera.
TerminalResultCode SendControlKey(ControlKey key, CommandOptions options = null)
Envía una tecla de control (Tab, F1–F24, Transmitir/Intro, teclas de flecha, etc.) al terminal.
Parámetros:
key(ControlKey) — La clave de control a enviar. ConsultaControlKeyenum.options(CommandOptions, opcional): tiempo de espera y modo de espera.
TerminalResultCode SendControlKey(ControlKey key, int delayMS, CommandOptions options = null)
Envía una clave de control y luego espera un número especificado de milisegundos antes de regresar. Útil cuando el host necesita tiempo de procesamiento después de una clave.
Parámetros:
key(ControlKey) — La clave de control a enviar.delayMS(int) — Milisegundos para suspender después de enviar la clave.options(CommandOptions, opcional): tiempo de espera y modo de espera.
Métodos de espera
TerminalResultCode WaitScreenReady(CommandOptions options = null)
Espera hasta que el teclado del terminal esté desbloqueado y la pantalla esté lista para la entrada.
Parámetros:
options(CommandOptions, opcional): tiempo de espera y modo de espera. EstableceTimeoutpara controlar cuánto tiempo esperar.
TerminalResultCode WaitText(string text, TerminalField criteria = null, bool matchCase = true, CommandOptions options = null)
Espera hasta que el texto especificado aparezca en la pantalla del terminal (o en un campo específico si se proporciona criteria ).
Parámetros:
text(string) — Texto a esperar.criteria(TerminalField, opcional): cuando se establece, espera el texto en el campo específico. Cuandonull, espera el texto en cualquier parte de la pantalla.matchCase(bool, opcional): comparación que distingue entre mayúsculas y minúsculas. Predeterminado:true.options(CommandOptions, opcional): tiempo de espera y modo de espera.
TerminalResultCode FindTextInScreen(string text, CursorPosition startPosition, bool ignoreCase, out CursorPosition position, CommandOptions options = null)
Busca en la pantalla una cadena de texto a partir de startPosition.
Parámetros:
text(string) — Texto a buscar.startPosition(CursorPosition) — Posición inicial de búsqueda.ignoreCase(bool) — Búsqueda que no distingue entre mayúsculas y minúsculas.position(out CursorPosition): recibe las coordenadas donde se encontró el texto.options(CommandOptions, opcional): tiempo de espera y modo de espera.
Devuelve: TerminalResultCode.Success si se encuentra; lanza (o devuelve InvalidCoordinates) si no se encuentra.
Ciclo de vida de la conexión
TerminalResultCode Disconnect(CommandOptions options = null)
Se desconecta del host mientras mantiene vivo el objeto de conexión (no se elimina). Rara vez necesario: Dispose() se encarga de la limpieza.
void Shutdown()
Alias para Dispose(). Desconecta, cierra los procesos del host y libera recursos.
void Dispose()
Desconecta la sesión, finaliza cualquier proceso de intermediario de host (x86/x64) y libera todos los recursos administrados y no administrados.
Avanzado
TerminalResultCode OverrideScreenResolution(ScreenSize screenSize, CommandOptions options = null)
Anula las dimensiones de la pantalla del terminal. Se utiliza cuando el host requiere un tamaño de pantalla no estándar.
Parámetros:
screenSize(ScreenSize) — Dimensiones de la pantalla de destino.options(CommandOptions, opcional): tiempo de espera y modo de espera.
Opciones y clases de configuración
CommandOptions
Controla el tiempo de espera y el comportamiento de espera de pantalla para operaciones de terminal individuales.
| Propiedad | Tipo | Predeterminado | Descripción |
|---|---|---|---|
Timeout | int | 30000 | Milisegundos de espera antes de lanzar un error de tiempo de espera. Cuando 0 o negativo, vuelve al valor predeterminado del servicio de 30 000 ms. |
WaitType | WaitMode | READY | Cómo esperar a la pantalla antes de ejecutar la operación. |
// Example: 10-second timeout, wait for screen ready
var opts = new CommandOptions(WaitMode.READY, 10000);
// Example: 10-second timeout, wait for screen ready
var opts = new CommandOptions(WaitMode.READY, 10000);
ConnectionData
Objeto de configuración programática para conexiones de terminal. Se utiliza con GetConnection(ConnectionData) y GetSshConnection().
| Propiedad | Tipo | Predeterminado | Descripción |
|---|---|---|---|
ProviderType | TerminalProviderType | UiPathNew | Proveedor de emulador de terminal. Utiliza UiPathNew para las conexiones TCP/SSH directas. |
ConnectionType | ConnectionType | Profile | Cómo se establece la conexión: Address (host/puerto: necesario para UiPathNew), Profile (archivo de perfil del proveedor), LowLevel (EHLLAPI). |
ConnectionProtocol | CommunicationType | TELNET | Protocolo: TELNET, SSH o HPVT. |
TerminalType | TerminalType | Terminal3270 | Tipo de emulación de terminal. |
Host | string | Nombre de host o dirección IP del host de destino. | |
Port | int | 23 | Puerto TCP. El valor predeterminado es 23 (Telnet); SSH suele utilizar 22. |
ShowTerminal | bool | true | Si mostrar la ventana del terminal (si el proveedor lo admite). |
EnableSSL | bool | false | Habilita SSL/TLS para la conexión. |
Profile | string | Ruta al archivo de perfil del proveedor (para proveedores basados en perfiles: Attachmate, IBM, BlueZone, etc.). | |
InProcessMode | bool | false | Ejecuta el proveedor de terminal en proceso (solo Genérico/EHLLAPI). |
AttachExisting | bool | false | Adjuntar a una sesión de terminal ya en ejecución. El valor true solo está disponible para el proveedor Attachmate |
ProxyType | ProxyType | None | Tipo de proxy (Ninguno, HTTP, SOCKS4, SOCKS5). |
ProxyHost | string | Nombre de host del servidor proxy. | |
ProxyPort | int | Puerto del servidor proxy. | |
ProxyUser | string | Nombre de usuario de autenticación de proxy. | |
ProxyPassword | string | Contraseña de autenticación de proxy. | |
InternalEncoding | string | Anulación de la codificación de caracteres (por ejemplo, "IBM037" para EBCDIC). | |
EhllDll | string | Ruta a la DLL de EHLLAPI (proveedor genérico). | |
EhllFunction | string | "hllapi" | Nombre de la función de punto de entrada EHLLAPI. |
EhllSession | string | "A" | Identificador de sesión EHLLAPI. |
EhllEnhanced | bool | true | Utiliza el modo EHLLAPI mejorado. |
EhllEncoding | string | Codificación de caracteres utilizada para la comunicación de texto EHLLAPI (proveedor genérico). El valor predeterminado es la codificación configurada del proveedor si no está establecida o no se reconoce. | |
EhllBasicMode | bool | false | Cuando true, deshabilita el análisis de campos en la recuperación de pantalla. Los datos de pantalla se devuelven solo como texto sin formato, sin metadatos de campo. Úselo para el rendimiento cuando no se necesita acceso a nivel de campo (proveedor genérico). |
LuName | string | Para 3270/5250: el nombre de la unidad lógica (LU) de SNA que se solicitará al host. Para VT/Wyse/Linux: la cadena de respuesta del terminal (usa ^M para el retorno de carro). No tiene efecto en las conexiones que no son SNA o VT. | |
TerminalModel | int | 0 | Identificador del modelo de terminal. Utiliza el valor de enumeración para el TerminalType activo: TerminalModes3270 (3270), TerminalModes5250 (5250, el valor predeterminado es IBM_5250_3477_FC cuando 0), TTVtTermId (VT), TerminalModesHP (HP), TerminalModesWyse (Wyse), TerminalModesLinux (Linux). |
TerminalField
Identifica un campo o región de la pantalla para operaciones de lectura/escritura.
| Propiedad | Tipo | Descripción |
|---|---|---|
RowStart | int | Fila de inicio (basado en 1 o -1 para no establecer). |
ColStart | int | Columna de inicio (basada en 1 o -1 para no establecer). |
RowEnd | int | Fila final para operaciones de área (-1 para desarmar). |
ColEnd | int | Columna final para operaciones de área (-1 para desarmar). |
LabeledBy | string | Texto de la etiqueta que precede al campo. |
FollowedBy | string | Texto de la etiqueta que sigue al campo. |
Index | int | Índice de campo basado en cero (-1 para no establecer). |
CursorPosition
Representa una ubicación de fila/columna en la pantalla del terminal.
| Propiedad | Tipo | Descripción |
|---|---|---|
Row | int | Fila (basada en 1). Predeterminado: 1. |
Column | int | Columna (basada en 1). Predeterminado: 1. |
Referencia de enumeración
WaitMode: NONE, READY, COMPLETE
NONE: no esperar; ejecutar inmediatamente.READY: espera a que se desbloquee el teclado antes de ejecutar.COMPLETE: espera a que lleguen todos los datos de la pantalla antes de ejecutar.
TerminalProviderType: UiPathNew, Attachmate, IBM, BlueZone, Generic, AttachmateExtra, ReflectionUnix, ReflectionIBM, Rumba, TandemHLL
UiPathNew: conexión TCP/SSH directa sin un emulador de terceros. Admite Telnet, SSH y HPVT.TandemHLL: sesiones de host tándem/NonStop a través de THLLAPI (THLLW3.DLL/THLLW6.DLL, Attachmate Reflection 6530). UtilizaConnectionType.LowLevely los mismos camposEhll*queGeneric. Los datos de atributos de color no son compatibles;GetColorAtPositionsiempre devuelveColor.LightGreen.
CommunicationType: TELNET, SSH, HPVT
ConnectionType: Address, Profile, LowLevel
Address: conexión por host/puerto. Obligatorio al utilizarProviderType.UiPathNew.Profile: conectarse utilizando un archivo de perfil específico del proveedor (ruta establecida a través deProfile).LowLevel: conexión a través de EHLLAPI (proveedor genérico) o THLLAPI (proveedor TandemHLL).
TerminalType: Terminal3270, Terminal5250, TerminalVT, TerminalHP, TerminalANSI, TerminalT653X, TerminalSCOANSI, TerminalWYSE, TerminalLinux
ControlKey (valores seleccionados): Transmit, Tab, BackTab, Return, Escape, BackSpace, Home, End, Insert, Delete, PageUp, PageDown, Up, Down, Left, Right, F1–F24, Shift_F1–Shift_F12, Ctrl_F1–Ctrl_F12, Alt_F1–Alt_F12, PA1–PA3, Clear, Reset, Attention, EraseEOF, EraseInput, CursorSelect, FieldPlus, FieldMinus, FieldExit, Ctrl_A–Ctrl_Z, Tandem_Horizontal_Tab, Tandem_Vertical_Tab
TerminalModes3270 (usar con TerminalType.Terminal3270): IBM_3270_3278_2 (0), IBM_3270_3278_3 (1), IBM_3270_3278_4 (2), IBM_3270_3278_5 (3), IBM_3270_3279_2 (4), IBM_3270_3279_3 ( 5), IBM_3270_3279_4 (6), IBM_3270_3279_5 (7)
TerminalModes5250 (usar con TerminalType.Terminal5250): IBM_5250_3179_2 (54), IBM_5250_3179_220 (60), IBM_5250_3180_2 (52), IBM_5250_3196_A1 (53), IBM_5250_3477_FG (61), IBM_5250_3477_FC ( 62), IBM_5250_5251_1 (55), IBM_5250_5251_11 (56), IBM_5250_5252 (57), IBM_5250_5291_1 (58), IBM_5250_5292_2 (59), IBM_5250_5555_C01 (64), IBM_5250_5555_B01 (65 ), IBM_5250_Printer (63)
TTVtTermId (utilizar con TerminalType.TerminalVT): VT100 (0), VT101 (1), VT102 (2), VT220 (3), VT240 (4), VT320 ( 5), VT340 (6), VT420 (7), VT100W (10), VT101W (11), VT102W (12), VT220w (13), VT240W (14 ), VT320W (15), VT340W (16), VT420W (17), VT100M (20), VT101M (21), VT102M (22), VT220M (23) , VT240M (24), VT320M (25), VT340M (26), VT420M (27)
TerminalModesHP (usar con TerminalType.TerminalHP): HP_2372A (0), HP_70092 (1), HP_70094 (2)
TerminalModesWyse (usar con TerminalType.TerminalWYSE): WYSE_50_24_80 (0), WYSE_50_24_132 (10), WYSE_60_24_80 (1), WYSE_60_24_132 (11), WYSE_60_42_80 (41), WYSE_60_42_132 ( 51), WYSE_60_43_80 (61), WYSE_60_43_132 (71), WYSE_350_24_80 (2), WYSE_350_24_132 (12)
TerminalModesLinux (utilizar con TerminalType.TerminalLinux): Linux_24_80 (0), Linux_24_132 (1), Linux_36_80 (2), Linux_36_132 (3), Linux_48_80 (4), Linux_48_132 (5)
Patrones comunes
Inicie sesión en un host 3270 y lea un campo
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
Host = "mainframe.corp.com",
Port = 23,
TerminalType = TerminalType.Terminal3270,
ProviderType = TerminalProviderType.UiPathNew,
ConnectionType = ConnectionType.Address,
ConnectionProtocol = CommunicationType.TELNET
};
using var conn = terminal.GetConnection(connData);
// Wait for login screen, then type credentials
conn.WaitText("ENTER USERID", options: new CommandOptions(WaitMode.READY, 30000));
conn.SetField(new TerminalField { LabeledBy = "USERID" }, "myuser");
conn.SetField(new TerminalField { LabeledBy = "PASSWORD" }, "mypassword");
conn.SendControlKey(ControlKey.Transmit);
// Wait for main menu
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
// Read data
conn.GetText(out string screen);
Log(screen);
}
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
Host = "mainframe.corp.com",
Port = 23,
TerminalType = TerminalType.Terminal3270,
ProviderType = TerminalProviderType.UiPathNew,
ConnectionType = ConnectionType.Address,
ConnectionProtocol = CommunicationType.TELNET
};
using var conn = terminal.GetConnection(connData);
// Wait for login screen, then type credentials
conn.WaitText("ENTER USERID", options: new CommandOptions(WaitMode.READY, 30000));
conn.SetField(new TerminalField { LabeledBy = "USERID" }, "myuser");
conn.SetField(new TerminalField { LabeledBy = "PASSWORD" }, "mypassword");
conn.SendControlKey(ControlKey.Transmit);
// Wait for main menu
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
// Read data
conn.GetText(out string screen);
Log(screen);
}
Conexión SSH con credenciales seguras
[Workflow]
public void Execute()
{
var controlKeyDelayMS = 1000;
var connData = new ConnectionData
{
Host = "unix-server.corp.com",
Port = 22,
TerminalType = TerminalType.TerminalVT,
ProviderType = TerminalProviderType.UiPathNew,
ConnectionType = ConnectionType.Address,
ConnectionProtocol = CommunicationType.SSH
};
// sshPwd is a SecureString variable, for example, from Get Credential activity
using var conn = terminal.GetSshConnection(connData, sshUser: "deploy", sshPassword: sshPwd);
conn.WaitText("$", options: new CommandOptions(WaitMode.NONE, 10000));
conn.SendKeys("ls -la /var/log");
conn.SendControlKey(ControlKey.Transmit, controlKeyDelayMS);
conn.GetText(out string output);
Log(output);
}
[Workflow]
public void Execute()
{
var controlKeyDelayMS = 1000;
var connData = new ConnectionData
{
Host = "unix-server.corp.com",
Port = 22,
TerminalType = TerminalType.TerminalVT,
ProviderType = TerminalProviderType.UiPathNew,
ConnectionType = ConnectionType.Address,
ConnectionProtocol = CommunicationType.SSH
};
// sshPwd is a SecureString variable, for example, from Get Credential activity
using var conn = terminal.GetSshConnection(connData, sshUser: "deploy", sshPassword: sshPwd);
conn.WaitText("$", options: new CommandOptions(WaitMode.NONE, 10000));
conn.SendKeys("ls -la /var/log");
conn.SendControlKey(ControlKey.Transmit, controlKeyDelayMS);
conn.GetText(out string output);
Log(output);
}
Navegar por un menú por posición de campo (EHLLAPI/Proveedor genérico)
Se utiliza al automatizar una sesión de terminal gestionada por un emulador de terceros que expone una interfaz EHLLAPI (por ejemplo, una sesión de IBM PCOMM o BlueZone en ejecución a la que se accede a través de su DLL EHLLAPI).
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.Generic,
ConnectionType = ConnectionType.LowLevel,
EhllDll = @"C:\Program Files\IBM\Personal Communications\PCSHLL32.DLL",
EhllFunction = "hllapi",
EhllSession = "A",
EhllEnhanced = true
};
using var conn = terminal.GetConnection(connData);
// Move cursor to the Option field and type a menu choice
conn.MoveCursor(row: 4, column: 14);
conn.SendKeys("2");
conn.SendControlKey(ControlKey.Transmit);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 20000));
// Read a region of the response screen (rows 5-20, full width)
var region = new TerminalField { RowStart = 5, ColStart = 1, RowEnd = 20, ColEnd = 80 };
conn.GetScreenArea(region, out string result);
Log(result);
}
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.Generic,
ConnectionType = ConnectionType.LowLevel,
EhllDll = @"C:\Program Files\IBM\Personal Communications\PCSHLL32.DLL",
EhllFunction = "hllapi",
EhllSession = "A",
EhllEnhanced = true
};
using var conn = terminal.GetConnection(connData);
// Move cursor to the Option field and type a menu choice
conn.MoveCursor(row: 4, column: 14);
conn.SendKeys("2");
conn.SendControlKey(ControlKey.Transmit);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 20000));
// Read a region of the response screen (rows 5-20, full width)
var region = new TerminalField { RowStart = 5, ColStart = 1, RowEnd = 20, ColEnd = 80 };
conn.GetScreenArea(region, out string result);
Log(result);
}
Esperar a procesar y leer un campo de resultado (IBM Personal Communications/perfil guardado)
Se utiliza cuando la conexión está preconfigurada en un archivo de espacio de trabajo de IBM PCOMM (.ws). PCOMM debe estar instalado en la máquina del robot.
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.IBM,
ConnectionType = ConnectionType.Profile,
Mode = ConnectionMode.Play,
ShowTerminal = true,
Profile = @"C:\PComm\Profiles\MainframeSession.ws"
};
using var conn = terminal.GetConnection(connData);
// Submit a transaction
conn.SetField(new TerminalField { LabeledBy = "TRAN CODE" }, "INQ01");
conn.SetField(new TerminalField { LabeledBy = "ACCOUNT " }, accountNumber);
conn.SendControlKey(ControlKey.Transmit);
// Wait for either success or error indicator
var opts = new CommandOptions(WaitMode.READY, 30000);
conn.WaitScreenReady(opts);
// Check status field
conn.GetField(new TerminalField { LabeledBy = "STATUS " }, out string status);
if (status.Trim() == "00")
{
conn.GetField(new TerminalField { LabeledBy = "BALANCE " }, out string balance);
Log($"Balance: {balance}");
}
else
{
conn.GetText(out string screen);
throw new Exception($"Transaction failed. Status: {status}. Screen: {screen}");
}
}
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.IBM,
ConnectionType = ConnectionType.Profile,
Mode = ConnectionMode.Play,
ShowTerminal = true,
Profile = @"C:\PComm\Profiles\MainframeSession.ws"
};
using var conn = terminal.GetConnection(connData);
// Submit a transaction
conn.SetField(new TerminalField { LabeledBy = "TRAN CODE" }, "INQ01");
conn.SetField(new TerminalField { LabeledBy = "ACCOUNT " }, accountNumber);
conn.SendControlKey(ControlKey.Transmit);
// Wait for either success or error indicator
var opts = new CommandOptions(WaitMode.READY, 30000);
conn.WaitScreenReady(opts);
// Check status field
conn.GetField(new TerminalField { LabeledBy = "STATUS " }, out string status);
if (status.Trim() == "00")
{
conn.GetField(new TerminalField { LabeledBy = "BALANCE " }, out string balance);
Log($"Balance: {balance}");
}
else
{
conn.GetText(out string screen);
throw new Exception($"Transaction failed. Status: {status}. Screen: {screen}");
}
}
Detectar un color de campo para la lógica condicional
[Workflow]
public void Execute()
{
var conn = terminal.GetConnection(connectionString);
try
{
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 10000));
// Check if the status indicator at row 24, col 1 is red (error)
conn.GetColorAtPosition(24, 1, out Color statusColor);
if (statusColor == Color.Red)
{
conn.GetText(out string errorScreen);
Log($"Error screen detected: {errorScreen}");
}
else
{
conn.GetField(new TerminalField { Index = 0 }, out string firstField);
Log($"First field: {firstField}");
}
}
finally
{
conn.Dispose();
}
}
[Workflow]
public void Execute()
{
var conn = terminal.GetConnection(connectionString);
try
{
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 10000));
// Check if the status indicator at row 24, col 1 is red (error)
conn.GetColorAtPosition(24, 1, out Color statusColor);
if (statusColor == Color.Red)
{
conn.GetText(out string errorScreen);
Log($"Error screen detected: {errorScreen}");
}
else
{
conn.GetField(new TerminalField { Index = 0 }, out string firstField);
Log($"First field: {firstField}");
}
}
finally
{
conn.Dispose();
}
}
Conéctese a un host Tandem/NonStop a través de THLLAPI
Se utiliza al automatizar una sesión Tandem/NonStop que se ejecuta a través de Attachmate Reflection 6530. El punto de entrada EhllFunction para THLLAPI es "thllapi" (no "hllapi"). Los datos de atributos de color no están disponibles para este proveedor.
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.TandemHLL,
ConnectionType = ConnectionType.LowLevel,
EhllDll = @"C:\Program Files\Attachmate\Reflection\THLLW6.DLL",
EhllFunction = "thllapi",
EhllSession = "A"
};
using var conn = terminal.GetConnection(connData);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
// Type a command and submit with Horizontal Tab to move between fields
conn.SetField(new TerminalField { LabeledBy = "LOGON:" }, "myuser");
conn.SendControlKey(ControlKey.Tandem_Horizontal_Tab);
conn.SetField(new TerminalField { LabeledBy = "PASSWORD:" }, "mypassword");
conn.SendControlKey(ControlKey.Return);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
conn.GetText(out string screen);
Log(screen);
}
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.TandemHLL,
ConnectionType = ConnectionType.LowLevel,
EhllDll = @"C:\Program Files\Attachmate\Reflection\THLLW6.DLL",
EhllFunction = "thllapi",
EhllSession = "A"
};
using var conn = terminal.GetConnection(connData);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
// Type a command and submit with Horizontal Tab to move between fields
conn.SetField(new TerminalField { LabeledBy = "LOGON:" }, "myuser");
conn.SendControlKey(ControlKey.Tandem_Horizontal_Tab);
conn.SetField(new TerminalField { LabeledBy = "PASSWORD:" }, "mypassword");
conn.SendControlKey(ControlKey.Return);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
conn.GetText(out string screen);
Log(screen);
}
- Espacios de nombres importados automáticamente
- Descripción general del servicio
- Métodos de conexión
TerminalConnection GetConnection(string connectionString)TerminalConnection GetConnection(ConnectionData connectionData)TerminalConnection GetSshConnection(ConnectionData connectionData, string sshUser, SecureString sshPassword)- ConexiónDeTerminal
- Propiedades
- Events
- Métodos de lectura de pantalla
- Métodos de campo
- Métodos de cursor
- Métodos de envío clave
- Métodos de espera
- Ciclo de vida de la conexión
- Avanzado
- Opciones y clases de configuración
CommandOptionsConnectionDataTerminalFieldCursorPosition- Referencia de enumeración
- Patrones comunes
- Inicie sesión en un host 3270 y lea un campo
- Conexión SSH con credenciales seguras
- Navegar por un menú por posición de campo (EHLLAPI/Proveedor genérico)
- Esperar a procesar y leer un campo de resultado (IBM Personal Communications/perfil guardado)
- Detectar un color de campo para la lógica condicional
- Conéctese a un host Tandem/NonStop a través de THLLAPI