SAP — Attach
SAP — Attach
Sección titulada «SAP — Attach»Tipo: sap-attach · Paquete: SAP Activities v1.0.5 · Salida: ZoanSapSession
Se conecta a una sesión de SAP que ya está abierta para que el bot trabaje en ella. No inicia sesión ni toca contraseñas: la sesión la abrió una persona, el SSO de la empresa o un SAP — Log on anterior. Es la forma más sencilla de empezar, y es lo que genera el botón Grabar del Designer cuando grabas en SAP GUI.
Cómo funciona
Sección titulada «Cómo funciona»Busca entre las conexiones y sesiones abiertas en SAP GUI la primera que coincida con el sistema (system) y el mandante (client) indicados; si no indicas ninguno, toma la primera sesión abierta. La comparación no distingue mayúsculas de minúsculas.
Si no la encuentra, el error explica el motivo concreto:
- SAP GUI no está en ejecución.
- SAP GUI está abierto pero el scripting está deshabilitado (ver Requisitos).
- SAP GUI está abierto pero no hay ninguna sesión iniciada.
- Ninguna sesión coincide con el filtro; en ese caso el mensaje lista las sesiones abiertas (como
sistema/mandante) para que veas cuál pedir.
Por defecto hace un solo intento. Con timeout, reintenta cada medio segundo hasta ese plazo: útil cuando el robot arranca a la vez que el equipo y SAP todavía se está cargando. Si se agota, el error es el último motivo real (de la lista anterior) seguido de cuánto se esperó.
El elementTimeout que fijes aquí viaja con la sesión: es lo que esperan a su elemento todas las actividades que la usan. Si lo dejas vacío, vale el tiempo de espera de la configuración del proyecto y, si tampoco está definido, 30 segundos.
Con body, las actividades de dentro heredan la sesión. Al terminar —bien o con error— la actividad se desengancha sin cerrar nada: SAP queda abierto tal como estaba. Sin body, devuelve la sesión en la salida para pasarla en el parámetro session de otras actividades.
Parámetros requeridos
Sección titulada «Parámetros requeridos»Ninguno.
Parámetros opcionales
Sección titulada «Parámetros opcionales»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
system | string | — | ID del sistema (DEV, PRD…). Si lo omites, toma la primera sesión abierta. |
client | string | — | Mandante, con sus ceros a la izquierda. Ej: "001". Si lo omites, cualquiera. |
timeout | number | 0 | Segundos a esperar a que aparezca la sesión. Con 0 (o vacío) hace un solo intento y falla de inmediato. Admite decimales. |
elementTimeout | number | 30 | Segundos que cada actividad espera a que aparezca su elemento. Vacío usa el de la configuración del proyecto o, si no hay, 30. Con 0 fallan al primer intento, útil mientras depuras un selector. Un valor negativo o que no es un número se ignora. |
Sub-flujos
Sección titulada «Sub-flujos»Actividades que se ejecutan con esta sesión. Heredan la sesión sin configurar session. Al salir del body, la actividad se desengancha y restaura la sesión del ámbito que hubiera antes (por ejemplo, la de un SAP — Attach exterior).
Devuelve la sesión (ZoanSapSession) cuando no usas body (o el body está vacío). Con body, la sesión se usa dentro y la actividad no devuelve ningún valor.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
No se encontró el objeto SAPGUI en la Running Object Table. SAP GUI for Windows debe estar abierto y con sesión iniciada en el sistema. | SAP Logon no está en ejecución en la sesión de Windows del robot. Ábrelo y que alguien (o el SSO) inicie sesión, o usa SAP — Log on. |
SAP GUI responde pero no entrega el motor de scripting. Casi siempre es que está desactivado: … | El scripting está deshabilitado en el servidor (sapgui/user_scripting) o en el cliente. Ver Requisitos. |
SAP GUI está abierto pero no hay ninguna sesión iniciada. Inicia sesión en el sistema primero. | SAP Logon está abierto pero sin sesión. Usa SAP — Log on, o sube timeout si alguien está iniciando sesión en ese momento. |
Ninguna sesión coincide con system='…' client='…'. Abiertas: A4H/001 | PRD/100. | El filtro no casa con ninguna sesión. Revisa system y client contra la lista del mensaje. |
… Se esperó … s. | Sufijo que se agrega a cualquiera de los anteriores cuando usaste timeout y el plazo se agotó. |
Ejemplo
Sección titulada «Ejemplo»Con body (la forma habitual):
SAP Attach system = "DEV" client = "001" timeout = 60 └─ body: SAP Run Transaction code = "SE16" SAP Set Text selector = "wnd[0]/usr/ctxtDATABROWSE-TABLENAME" value = "T000" SAP Send Key key = EnterSin body, guardando la sesión en una variable para pasarla a otras actividades:
SAP Attach system = "DEV" client = "001" → output: sapSAP Run Transaction session = sap code = "SE16"SAP Get Text session = sap selector = "wnd[0]/titl" → output: tituloActividades relacionadas
Sección titulada «Actividades relacionadas»- SAP — Log on — abrir una conexión e iniciar sesión.
- SAP — Run transaction — el paso siguiente habitual.
- SAP — Close modal — cerrar un diálogo que haya quedado abierto.