Ir al contenido

SAP — Send key

Tipo: sap-send-key  ·  Paquete: SAP Activities v1.0.5

Envía una tecla de función a la ventana de SAP: Enter para confirmar, F8 para ejecutar, F3 para volver, F11 para grabar… En SAP casi todo se dispara con una de estas teclas, así que es una de las actividades más usadas.

SAP no recibe pulsaciones de teclado sino códigos de función (las vkeys): cada tecla o combinación que SAP entiende tiene un número fijo, y es ese número el que se envía a la ventana. Por eso la lista de teclas es cerrada: solo existen las combinaciones de la tabla de SAP.

Espera a que SAP termine lo que esté procesando, envía la tecla a la ventana indicada en window (por defecto la principal, wnd[0]) y vuelve a esperar a que SAP responda.

Después lee la barra de estado:

  • Si SAP muestra un mensaje de error (tipo E) o de cancelación (tipo A), la actividad falla con ese mensaje.
  • Cualquier otro mensaje se registra en el log (los avisos, tipo W, como advertencia). Esto importa porque SAP comunica cosas relevantes con mensajes de tipo S (éxito), como “No table entries found for specified key”: no detienen el flujo, pero quedan en el log.

La tecla se envía a la ventana, no a un campo concreto: no hace falta seleccionar nada antes. La ventana sí debe existir; si no, la actividad falla de inmediato (no espera a que aparezca).

ParámetroTipoPor defectoDescripción
keystring—Tecla a enviar (ver Teclas disponibles). Con Expresión puedes pasar el nombre de la tecla armado en tiempo de ejecución o directamente el número de vkey de SAP (0–99). Si llega vacía, se envía Enter.
TeclavkeyUso habitual
Enter0Confirmar, pasar a la siguiente pantalla
F1 … F121–12F1 ayuda · F3 volver · F4 ayuda de valores · F8 ejecutar · F11 grabar · F12 cancelar
Shift+F1 … Shift+F1213–24Shift+F3 finalizar (salir)
Ctrl+F1 … Ctrl+F1225–36Según la pantalla
Ctrl+Shift+F1 … Ctrl+Shift+F1237–48Según la pantalla
Ctrl+E · Ctrl+F · Ctrl+/ · Ctrl+\ · Ctrl+N · Ctrl+O70–75Ctrl+F buscar
Ctrl+X · Ctrl+C · Ctrl+V · Ctrl+Z76–79Según la pantalla
Ctrl+PageUp · PageUp · PageDown · Ctrl+PageDown80–83Primera página · página anterior · página siguiente · última página
Ctrl+G · Ctrl+R · Ctrl+P84–86Ctrl+G seguir buscando · Ctrl+P imprimir
Ctrl+S11Igual que F11 (grabar)

Qué hace cada tecla depende de la pantalla: SAP solo ejecuta la función si esa pantalla la tiene asignada. Los valores F11-Save, F12-Cancel y F15-Exit de playbooks guardados con versiones anteriores siguen funcionando (equivalen a F11, F12 y Shift+F3).

El nombre se compara sin distinguir mayúsculas ni espacios, así que en una expresión valen "ctrl + f5", "CTRL+F5" o "Shift+Ctrl+F1". También se aceptan F13–F24 como otro nombre de Shift+F1–Shift+F12, y PgUp/PgDn. Si el valor no es un nombre conocido ni un número entre 0 y 99, la actividad falla indicando las teclas válidas.

ParámetroTipoPor defectoDescripción
sessionZoanSapSession—Sesión de SAP. Omítela dentro del cuerpo de un SAP — Attach o un SAP — Log on.
windowstring"wnd[0]"Ventana que recibe la tecla. Usa wnd[1] para una ventana modal (un diálogo emergente).

Esta actividad no devuelve ningún valor. Para saber qué respondió SAP, léelo después con SAP — Read status bar.

MensajeCausa y solución
Tecla desconocida '…'. Válidas: Enter, F1-F12, Shift+F1-F12, …El valor no es un nombre de la tabla ni un número entre 0 y 99. Elige una tecla de la lista.
La ventana '…' no existe.La ventana de window no está abierta (por ejemplo, wnd[1] cuando el diálogo ya se cerró). Compruébalo antes con SAP — Element exists.
SAP respondió [E …]: …Tras la tecla, SAP mostró un error o una cancelación en la barra de estado.

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

Abrir la tabla T000 en SE16 y ejecutar la consulta:

SAP — Run transaction code = "SE16"
SAP — Set text selector = "wnd[0]/usr/ctxtDATABROWSE-TABLENAME" value = "T000"
SAP — Send key key = Enter // pasa a la pantalla de selección
SAP — Send key key = F8 // ejecuta
SAP — Read status bar → output: estado
Log message = "SAP respondió: " + str(estado["text"])

Buscar en la pantalla actual con Ctrl+F:

SAP — Send key key = Ctrl+F

Enviar una vkey por su número, desde una variable:

SAP — Send key key = teclaSap // por ejemplo 8, que es F8

Confirmar un diálogo emergente:

SAP — Send key key = Enter window = "wnd[1]"