SAP Netweaver / ABAP                  Notas técnicas / Tips / Tutorials

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’. 

A partir de la versión 4.7 estos módulos de función quedan obsoletos. Si bien siguen existiendo, SAP no les brinda más soporte y no garantiza que vayan a estar en futuras versiones, por lo cual sus funcionalidades deben ser implementadas mediante otros módulos de funciones o métodos y clases.

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ónsapping@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

Copyright © 2024 Teknoda Tech Portal & Training. Todos los derechos reservados.
Joomla! es software libre, liberado bajo la GNU General Public License.