Descripción General #
El comando IBMi Leer pertenece a la categoría de comandos para sistemas de terminales IBM i | AS/400. Su propósito principal es extraer y capturar un tramo de texto específico desde una fila y un rango de columnas determinados en la pantalla activa de la terminal, almacenando el valor obtenido en una variable para que pueda ser reutilizado en pasos posteriores de la automatización.

Ejemplo de Uso Rápido #
Imagina que estás automatizando la consulta de pedidos en una pantalla verde de AS/400. Tras procesar una orden, el sistema muestra un mensaje en la parte inferior que dice «ESTADO: PROCESADO».
Si sabes que ese mensaje siempre aparece en la fila 10, comenzando en la columna 20 y terminando en la 35, configuras el comando {leer IBMi} para extraer ese tramo exacto. El robot guardará la palabra «PROCESADO» en una variable para validar si la operación fue exitosa antes de continuar.
Parámetros y Opciones #
Para configurar el comando {leer IBMi}, debes completar los siguientes parámetros obligatorios:
- Fila (obligatorio; tipos: integer, constant, variable, extended): especifica el número de la fila de la pantalla de la terminal desde donde se realizará la lectura.
- Inicio (obligatorio; tipos: integer, constant, variable, extended): define el número de la columna inicial donde comienza el tramo de texto que deseas extraer.
- Fin (obligatorio; tipos: integer, constant, variable, extended): define el número de la columna final donde termina el tramo de texto que deseas extraer.
- Variable (obligatorio; tipos: variable): nombre de la variable de STELA donde se almacenará el texto recuperado de la pantalla.

Ejemplos de Uso Avanzado #
- Lectura de un número de comprobante o ID: Extracción de un identificador numérico de 15 caracteres generado por el sistema en la fila 10, entre las columnas 20 y 35. {leer IBMi} ; 10 ; 20 ; 35 ; estado_operacion
- Captura de mensajes de error o notificación: Lectura de la última línea de la terminal (típicamente la fila 24) para atrapar cualquier mensaje de alerta del sistema operativo antes de confirmar una transacción. {leer IBMi} ; 24 ; 1 ; 80 ; mensaje_sistema
Errores Comunes y Soluciones #
- Error: La variable queda vacía o con caracteres extraños (espacios en blanco).
- Solución: Verifica visualmente las coordenadas en tu emulador. Recuerda que las pantallas de terminales AS/400 estándar suelen ser de $24 \times 80$ o $27 \times 132$. Si las columnas de inicio o fin están mal calculadas, el robot leerá una zona vacía de la pantalla. Ajusta los límites numéricos asegurándote de cubrir el ancho exacto del texto.
- Error: El robot extrae el texto cortado o incompleto.
- Solución: Esto ocurre si el valor del parámetro fin es menor al tamaño real del dato en pantalla. Amplía el rango de la columna final (fin) para dar el margen suficiente en caso de que los textos leídos varíen en longitud entre una transacción y otra. Luego, puedes usar comandos utilitarios como {funcion} con la opción TRIM si necesitas remover espacios en blanco sobrantes.
- Error: El comando se ejecuta pero el texto capturado corresponde a la pantalla anterior.
- Solución: Los sistemas IBM i pueden tardar unos milisegundos en procesar y renderizar una nueva interfaz tras presionar [ENTER]. Inserta un comando de sincronización previo, como {espera IBMi} configurado con la opción Esperar texto aparezca, para asegurar que la pantalla se ha actualizado por completo antes de realizar la lectura.