Ir al contenido

SAP — Select rows

Tipo: sap-select-row  ·  Paquete: SAP Activities v1.0.5

Selecciona filas de una grilla ALV de SAP, como haría una persona al marcarlas antes de pulsar un botón que actúa sobre las filas elegidas (liberar, borrar, ver detalle, exportar solo lo seleccionado…).

Espera a que SAP termine lo que esté procesando, busca la grilla por su selector y deja seleccionadas exactamente las filas indicadas en rows. La selección reemplaza a la que hubiera: las filas que no estén en la lista quedan sin seleccionar.

Las filas se numeran desde 0 (la primera fila es la 0). Puedes indicar varias separadas por comas y rangos con guion, por ejemplo "0,3,5-8".

Solo funciona con grillas ALV (GridView). Si el selector apunta a otro tipo de control, la actividad falla y lo indica: en una tabla clásica (table control), una fila se selecciona escribiendo en su columna de selección con SAP — Set cell.

Si la grilla todavía no está en pantalla, la actividad la espera hasta el plazo configurado (timeout o el elementTimeout del ámbito, 30 segundos por defecto).

ParámetroTipoPor defectoDescripción
selectorselector—La grilla ALV. Selector capturado o id de SAP, por ejemplo wnd[0]/usr/cntlGRID1/shellcont/shell.
rowsstring—Filas (desde 0) separadas por comas. Admite rangos: "0,3,5-8".
ParámetroTipoPor defectoDescripción
sessionZoanSapSession—Sesión de SAP. Omítela dentro del body de un SAP — Attach o SAP — Log on.
timeoutnumber—Segundos que se espera a que aparezca la grilla. Manda sobre el elementTimeout del ámbito. Vacío usa el del ámbito (30 por defecto); 0 falla al primer intento. Admite decimales.

Esta actividad no devuelve ningún valor.

MensajeCausa y solución
Solo funciona en un ALV (GridView). En una tabla clásica una fila se selecciona escribiendo en su columna de selección con sap-set-cell.El selector no apunta a una grilla ALV. Usa SAP — Set cell en tablas clásicas.
Error de SAP GUI al asignar las filasrows no tiene el formato esperado o incluye filas que no existen.
El componente '…' no existe en la sesión de SAP. Se esperó … s a que apareciera. La pantalla actual es … dynpro … (transacción …). …El elemento no apareció en el plazo. El mensaje dice en qué pantalla está la sesión: casi siempre es otra distinta de la esperada (un diálogo delante, un paso que no se dio). Si la pantalla tarda, sube timeout.

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

Seleccionar las tres primeras filas del resultado y pulsar un botón de la barra del ALV:

SAP — Select rows selector = "wnd[0]/usr/cntlGRID1/shellcont/shell" rows = "0-2"
SAP — ALV toolbar selector = "wnd[0]/usr/cntlGRID1/shellcont/shell" button = "&DETAIL"

Seleccionar una fila calculada en el flujo:

SAP — Select rows selector = "wnd[0]/usr/cntlGRID1/shellcont/shell" rows = str(indice)