Ir al contenido

SAP — Read classic list

Tipo: sap-read-list  ·  Paquete: SAP Activities v1.0.5  ·  Salida: List<Dictionary<string,object>>

Lee una lista clásica de SAP: la salida de los reportes tradicionales, que no es una tabla ni un ALV sino texto colocado en una cuadrícula de caracteres (como la que muestra la SE16 con su configuración por defecto). La actividad reconstruye esas líneas y te las entrega como filas, para que puedas buscar un dato o recorrerlas.

Recorre el contenedor indicado en area (por defecto el área de trabajo, wnd[0]/usr) y reúne todos los elementos colocados por coordenada de carácter —los que SAP identifica como lbl[columna,fila]—. Los agrupa por fila, los ordena por columna y descarta los vacíos. Devuelve como máximo maxRows filas, en orden.

Lee lo que la pantalla tiene cargado en ese momento. Si el contenedor no existe, falla (no espera a que aparezca).

Ninguno.

ParámetroTipoPor defectoDescripción
sessionZoanSapSession—Sesión de SAP. Omítela dentro del body de un SAP — Attach o SAP — Log on.
areastring"wnd[0]/usr"Contenedor a leer (id de SAP).
maxRowsint500Máximo de filas a devolver.

Devuelve una List<Dictionary<string,object>>: una lista de filas, ordenadas de arriba abajo, y cada fila es un diccionario con:

ClaveTipoContenido
rowintNúmero de fila en la cuadrícula de la pantalla (la coordenada vertical de SAP, no un contador desde 0).
cellsListTextos de la fila, de izquierda a derecha, sin espacios sobrantes.
textstringLos textos de la fila unidos con un espacio.
[
{ "row": 3, "cells": ["001", "Mandante de pruebas", "Ciudad Ejemplo"], "text": "001 Mandante de pruebas Ciudad Ejemplo" },
...
]

Las filas sin ningún texto no aparecen. Si la pantalla no tiene elementos colocados por coordenada, devuelve una lista vacía.

MensajeCausa y solución
El componente '…' no existe.El contenedor de area no está en la pantalla. La actividad no espera a que aparezca: espera antes con SAP — Wait for element.

Además, los errores comunes a todas las actividades.

SAP Run Transaction code = "SE16"
SAP Set Text selector = "wnd[0]/usr/ctxtDATABROWSE-TABLENAME" value = "T000"
SAP Send Key key = Enter
SAP Press Toolbar Button selector = "wnd[0]/tbar[1]/btn[8]"
SAP Read Classic List maxRows = 100 → output: lineas
For Each items = lineas itemVariable = linea
└─ activities:
Log message = str(linea["text"])