Ir al contenido

SAP — Save file dialog

Tipo: sap-save-file-dialog  ·  Paquete: SAP Activities v1.0.5  ·  Salida: string

Completa el diálogo de guardado de SAP y lo confirma. Es el último paso de casi cualquier descarga desde SAP: después de la acción que abre el diálogo (exportar una grilla ALV, el botón de descarga propio de una transacción, la opción de menú para guardar la lista en un archivo local), esta actividad elige el formato, escribe la carpeta y el nombre, y genera el archivo. Devuelve la ruta completa del archivo.

La actividad resuelve las dos pantallas que SAP suele mostrar al descargar:

  1. Formato. Si delante está el diálogo que pregunta el formato (sin convertir, texto con tabuladores, hoja de cálculo…), selecciona el de format y continúa. Si SAP no pregunta el formato, este paso se omite y format no tiene efecto.
  2. Guardar archivo. Escribe la carpeta (path), el nombre (fileName) y, si lo indicas, la página de códigos (encoding). Luego pulsa Reemplazar si overwrite = true (valor por defecto) o Generar si overwrite = false.

Detalles importantes:

  • Si path no termina en \, la actividad agrega la barra final (SAP concatena carpeta y nombre tal cual).
  • Si al llegar no encuentra el diálogo de guardado en la ventana window (por defecto wnd[1]), falla con un mensaje que recuerda que esta actividad va después de la que abre el diálogo.
  • Si SAP responde con un error (tipo E) o una cancelación (tipo A), la actividad falla con ese mensaje.
  • Al terminar comprueba que el archivo realmente exista en la ruta; que el diálogo se cierre no garantiza que se haya escrito.
  • Como la descarga escribe en disco, SAP GUI puede mostrar su diálogo de seguridad pidiendo permiso. Mientras dura la descarga, la actividad vigila ese diálogo dentro de la ventana de SAP y lo acepta, dejando un aviso en el log. Lo reconoce por su forma y no por sus textos, así que funciona con SAP GUI en cualquier idioma.

A diferencia de otras actividades de SAP, esta no espera a que aparezca el diálogo: debe estar abierto cuando la actividad empieza.

ParámetroTipoPor defectoDescripción
pathstring—Carpeta de destino, que debe existir. Ej: "C:\salidas\". Si falta la barra final, se agrega.
fileNamestring—Nombre del archivo con extensión. Ej: "facturas.txt".
ParámetroTipoPor defectoDescripción
sessionZoanSapSession—Sesión de SAP. Omítela dentro del body de un SAP — Attach o SAP — Log on.
formatstring"Text with Tabs"Formato, cuando SAP lo pregunta primero: Unconverted · Text with Tabs · Spreadsheet · Rich Text · HTML. Text with Tabs es el que un playbook puede procesar después con facilidad. El formato Clipboard no se ofrece porque no genera archivo; un playbook anterior que lo tenga falla con un mensaje que lo explica.
encodingstring—Página de códigos de SAP (por ejemplo "4110" para UTF-8), escrita en el campo ctxtDY_FILE_ENCODING. Vacío usa la predeterminada del sistema.
overwritebooltrueSobrescribir el archivo si ya existe (botón Reemplazar, btn[11]). Con false usa Generar (btn[0]): si el archivo existe, SAP se niega (“already exists”) y la actividad falla. También acepta una expresión que devuelva true o false.
windowstring"wnd[1]"Ventana del diálogo.

Devuelve un string con la ruta del archivo generado: carpeta + nombre, tal como los indicaste (con la barra final agregada si faltaba). Solo lo devuelve después de comprobar que el archivo existe.

MensajeCausa y solución
El formato Clipboard no está soportado: SAP copia la lista al portapapeles y nunca abre el diálogo de guardar, así que no hay archivo que escribir. …Un playbook anterior trae format = Clipboard. Elige otro formato.
Formato desconocido '…'. Válidos: Unconverted, Text with Tabs, Spreadsheet, Rich Text, HTML.format no es uno de la lista (se compara sin distinguir mayúsculas).
No hay diálogo de guardar en wnd[1]. Esta actividad va DESPUÉS de la que lo abre (sap-export-list, sap-grid-export o el botón propio de la transacción).El campo de carpeta (ctxtDY_PATH) no está en la ventana del diálogo. La actividad no espera a que aparezca.
El diálogo no tiene el botón btn[11]. (o btn[0])El diálogo que hay delante no es el “Save File” estándar de SAP. Condúcelo a mano con SAP — Press button.
SAP rechazó la descarga [E …]: …SAP respondió con un error, por ejemplo una carpeta que no existe o, con overwrite = false, un archivo que ya existe.
SAP no dejó ningún error pero el archivo no se escribió. …El diálogo se cerró pero el archivo no está en la ruta. Si el mensaje añade Si el equipo pide permiso de escritura y nadie responde, la descarga nunca ocurre, revisa el diálogo de seguridad de SAP GUI (Options → Security).

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

Descargar como texto con tabuladores el resultado de un informe que se muestra en una grilla ALV:

SAP — Run transaction code = "ZREPORTE01"
SAP — Send key key = F8
SAP — Export ALV grid selector = "wnd[0]/usr/cntlGRID1/shellcont/shell" menuItem = "&PC"
SAP — Save file dialog path = "C:\salidas\" fileName = "reporte.txt" format = Text with Tabs → output: archivo
Log message = "Descargado en " + archivo