Ir al contenido

SAP — ALV toolbar

Tipo: sap-grid-toolbar  ·  Paquete: SAP Activities v1.0.5  ·  Salida: List<string>

Pulsa un botón de la barra de un ALV: la pequeña barra de herramientas que va pegada a la rejilla (filtrar, ordenar, sumar, cambiar el diseño…). Cada programa pone sus propios botones, así que la actividad también sirve para descubrirlos: si dejas button vacío, en lugar de pulsar te devuelve la lista de los que tiene ese ALV.

Espera a que SAP termine de procesar y busca el ALV por su selector, esperando a que aparezca hasta timeout. Luego:

  • Con button: pulsa el botón con ese código y espera a que SAP responda. Después lee la barra de estado: un mensaje de tipo E o A hace fallar la actividad; los demás se registran en el log.
  • Sin button: no pulsa nada. Devuelve una lista con un texto por botón, con el formato código · texto (por ejemplo &FIND · Buscar).
ParámetroTipoPor defectoDescripción
selectorselector—El ALV. Ej: "wnd[0]/usr/cntlGRID1/shellcont/shell".
ParámetroTipoPor defectoDescripción
sessionZoanSapSession—Sesión de SAP. Omítela dentro del body de un SAP — Attach o SAP — Log on.
buttonstring—Código del botón (&SORT_ASC, &FIND…). Vacío: devuelve los botones disponibles en lugar de pulsar. Los botones de menú (&MB_…) abren un menú en vez de ejecutar una acción; para exportar usa SAP — Export ALV grid.
timeoutnumber—Segundos que se espera a que aparezca el ALV. Manda sobre el elementTimeout del ámbito. Vacío usa el del ámbito (30 por defecto); 0 falla al primer intento. Admite decimales.

Sin button, devuelve una List<string> con los botones del ALV, uno por elemento y en el orden de la barra, con el formato código · texto (por ejemplo &FIND · Buscar; el texto puede venir vacío en botones que solo tienen icono). Si el ALV no tiene botones, la lista viene vacía.

Al pulsar un botón no devuelve ningún valor.

MensajeCausa y solución
Error de SAP GUI al pulsar el botónEl ALV no tiene un botón con ese código. Lista los que sí tiene dejando button vacío.
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.
SAP respondió [E …]: …Tras la acción, SAP mostró un error (E) o una cancelación (A) en la barra de estado. El texto es el de SAP.

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

Primero, descubrir qué botones tiene el ALV (una sola vez, mientras construyes el flujo):

SAP ALV Toolbar selector = "wnd[0]/usr/cntlGRID1/shellcont/shell" → output: botones
Log message = string.Join(" | ", botones)

Luego, pulsar el que necesitas:

SAP ALV Toolbar selector = "wnd[0]/usr/cntlGRID1/shellcont/shell" button = "&SORT_ASC"