Nueva técnica en ABAP para el manejo de archivos en el Presentation Server
En programas ABAP conozca la nueva manera en programas ABAP de subir y/o bajar archivos desde/hacia la PC (Presentation Server) a partir de la versión 4.7.
Frecuentemente es necesario importar/exportar información desde/hacia un archivo localizado en una PC (Presentation Server). Este proceso se realizaba hasta ahora utilizando los módulos de función ‘UPLOAD’ , ‘WS_UPLOAD’, ‘DOWNLOAD’ y ‘WS_DOWNLOAD’.
La diferencia fundamental entre las funciones ‘UPLOAD’ y ‘DOWNLOAD’ y entre las funciones ‘WS_UPLOAD’ y ‘WS_DOWNLOAD’ radica en la posibilidad de mostrar un POP_UP para colocar la ruta donde se desea subir/bajar el archivo. El resto de las funcionalidades de los FM son similares, por lo tanto primero explicaremos cómo subir o bajar un archivo a SAP sin utilizar las funciones obsoletas, y luego agregaremos la funcionalidad para poder especificar la ruta.
Cómo bajar información desde SAP a un archivo de texto (Download)
En el primer ejemplo, se realizará el download de los datos de una tabla a un archivo en la PC local utilizando el método ‘GUI_DOWNLOAD’ de la clase ‘CL_GUI_FRONTEND_SERVICES’.
Para lograr el “Download” se deberán seguir los siguientes pasos:
1. Declaración de tipos y variables:
TYPES ty_tab TYPE char80. “Registro de la tabla CONSTANTS c_path TYPE string VALUE ‘C:\download.txt’. DATA: g_flength TYPE I. “Devuelve el total de bytes transferidos. DATA: gt_data TYPE STANDARD TABLE OF ty_tab. “Datos a transferir |
2. Carga de los datos a transferir en la tabla.
APPEND 'Primer linea del texto a transferir' TO tab. APPEND 'Segunda linea. ' TO tab. APPEND ' Tercer linea. ' TO tab. APPEND ' Cuarta linea. ' TO tab. APPEND ' Quinta y ultima linea. ' TO tab. |
3. Invocación al método GUI_DOWNLOAD de la clase CL_GUI_FRONTEND_SERVICES.
El método GUI_DOWNLOAD es el que reemplaza a las funciones ‘WS_DOWNLOAD’ y ‘DOWNLOAD’.
CALL METHOD cl_gui_frontend_services=>gui_download EXPORTING filename = c_path filetype = 'ASC' IMPORTING filelength = g_flength CHANGING data_tab = gt_tab EXCEPTIONS file_write_error = 1 no_batch = 2 gui_refuse_filetransfer = 3 invalid_type = 4 no_authority = 5 unknown_error = 6 header_not_allowed = 7 separator_not_allowed = 8 filesize_not_allowed = 9 header_too_long = 10 dp_error_create = 11 dp_error_send = 12 dp_error_write = 13 unknown_dp_error = 14 access_denied = 15 dp_out_of_memory = 16 disk_full = 17 dp_timeout = 18 file_not_found = 19 dataprovider_exception = 20 control_flush_error = 21 not_supported_by_gui = 22 error_no_gui = 23 OTHERS = 24.
IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. |
Una vez ejecutado este método, se habrá grabado el archivo en la ruta especificada en el parámetro c_path.
Cómo subir información desde un archivo de texto a SAP (Upload)
Para subir información desde un archivo de texto del Presentation Server (la PC), se realiza un procedimiento muy similar al explicado anteriormente para “bajar” (download) información desde SAP.
Para efectuar el upload se debe utilizar el método GUI_UPLOAD de la clase CL_GUI_FRONTEND_SERVICES. El método GUI_UPLOAD es el que reemplaza a las funciones ‘WS_UPLOAD y ‘UPLOAD’. .
El Paso 3. del procedimiento anterior (es decir, específicamente la invocación al método), se aplica de manera similar tanto para realizar el upload como el download, sólo que con el método correspondiente en cada caso.
Cómo buscar archivos en el Presentation Server (PC)
El método GUI_DOWNLOAD explicado anteriormente en el punto II. , no permite al usuario ingresar la ruta del archivo. Por esta razón en los siguientes pasos se detallará cómo implementar esta funcionalidad sin utilizar las funciones obsoletas.
1. Declaración de la pantalla de selección.
PARAMETERS: p_file TYPE file_name.
2. Evento ON VALUE-REQUEST sobre el parameter en el que se especifica la ruta del archivo que se desea abrir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
DATA: v_usr_action TYPE i, v_path TYPE string, “Directorio del archivo v_fullpath TYPE string, “Ruta del arhivo completa v_filename TYPE string. “Nombre del archivo
CALL METHOD cl_gui_frontend_services=>file_save_dialog EXPORTING initial_directory = 'C:\' CHANGING filename = v_filename path = v_path fullpath = v_fullpath user_action = v_usr_action EXCEPTIONS cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 OTHERS = 4.
IF sy-subrc IS INITIAL.
IF v_usr_action EQ cl_gui_frontend_services=>action_ok. MOVE v_fullpath TO p_file. ENDIF.
ENDIF. |
Para tener en cuenta …
Es recomendable familiarizarse con la clase CL_GUI_FRONTEND_SERVICES, que puede accederse desde la Transacción SE24 (Class Builder)., para conocer todas las funcionalidades que brinda esta clase (métodos, atributos, etc.), y de esta manera poder hacer un mejor uso de la misma.
Copyright Teknoda S.A.
IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa dirección a sapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.
SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA
FICHA TECNICA: Notas técnicas – Tips de SAP Netweaver ABAP ”Nueva técnica en ABAP para el manejo de archivos en el Presentation Server”
Tema: Programación ABAP Descripción: Conozca la nueva manera de subir y/o bajar archivos desde/hacia la PC (Presentation Server) a partir de la versión 4.7. del ERP