Ir al contenido

SAP — Run transaction

Tipo: sap-run-transaction  ·  Paquete: SAP Activities v1.0.5

Abre una transacción de SAP por su código, como cuando escribes SE16 en el campo de comandos y pulsas Enter. Es el paso habitual para llegar a la pantalla que vas a automatizar, sin depender de menús ni favoritos. Además comprueba que la transacción de verdad se abrió, algo que SAP no siempre deja claro.

  1. Espera a que SAP termine de procesar y busca el campo de comandos (wnd[0]/tbar[0]/okcd). Si no lo encuentra, falla: casi siempre es porque hay una ventana modal delante; ciérrala antes con SAP — Close modal.
  2. Escribe el código con el prefijo /n (reemplaza la transacción actual) o /o si activas newWindow (la abre en un modo nuevo), y pulsa Enter. Si tú mismo escribes /n o /o al inicio, se respeta. Los códigos con espacio de nombres, como /SCWM/MON, también reciben su prefijo (/n/SCWM/MON), así que se escriben tal como aparecen en SAP. Otros comandos del campo que empiezan con / (por ejemplo /*SE16) se escriben tal cual.
  3. Revisa el resultado:
    • Si la barra de estado muestra un mensaje de tipo E o A, la actividad falla con el texto de SAP.
    • Si la sesión sigue en la misma transacción de antes y SAP dejó un mensaje, la actividad falla indicando que la transacción no se abrió. Esto detecta casos como “Transaction XXXX does not exist” o la falta de autorización, que SAP anuncia con un mensaje de tipo S (éxito).
    • Cualquier otro mensaje se registra en el log.

Con newWindow activado, la transacción se abre en otro modo y la sesión actual no cambia, por eso en ese caso no se hace la comprobación del paso 3.

ParámetroTipoPor defectoDescripción
codestring—Código de la transacción, sin el prefijo /n. Ej: "SE16", "/SCWM/MON". Si escribes /n o /o al inicio, se respeta. También admite parámetros detrás del código (todo lo que va tras el primer espacio no cuenta para la comprobación).
ParámetroTipoPor defectoDescripción
sessionZoanSapSession—Sesión de SAP. Omítela dentro del body de un SAP — Attach o SAP — Log on.
newWindowboolfalseAbrirla en un modo nuevo de SAP (/o) en lugar de reemplazar el actual (/n). También acepta una expresión que devuelva true o false.

Esta actividad no devuelve ningún valor. En el log deja la transacción abierta (Transacción … abierta.) y, si SAP dejó un aviso en la barra de estado, su tipo y código.

MensajeCausa y solución
La transacción '…' no se abrió: la sesión sigue en '…'. SAP dijo [S …]: …El código no existe o el usuario no tiene autorización: SAP lo anuncia con un mensaje de tipo S y la sesión se queda donde estaba. Revisa el código y los permisos del usuario.
SAP respondió [E …]: …SAP rechazó el comando con un error.
No se encontró el campo de comandos (wnd[0]/tbar[0]/okcd). ¿Hay una ventana modal abierta delante? Ciérrala con sap-close-modal.Un diálogo tapa la ventana principal. Ciérralo antes con SAP — Close modal.
'code' es obligatorio.code llegó vacío.

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

SAP Attach system = "DEV" client = "001"
└─ body:
SAP Run Transaction code = "SE16"
SAP Set Text selector = "wnd[0]/usr/ctxtDATABROWSE-TABLENAME" value = "T000"
SAP Send Key key = Enter