✒️ABAP / Los archivos locales y el upload de datos Por Jaime Gomez Arango

ABAP Los archivos locales y el upload de datos

ABAP Los archivos locales y el upload de datos

Handling Local Files

ABAP provides a set of highly useful methods for handling local files located on our PC through the CL_GUI_FRONTEND_SERVICES class.

  • To view all available methods in the class, edit an ABAP program and press the Pattern(Model) button.
  • Select the ABAP Object Patterns option and press continue.
  • On the next screen, enter the class CL_GUI_FRONTEND_SERVICES.
  • Press F4 on Method, and you'll see a screen with all the class methods.

We will explore the following methods in detail:

  • FILE_OPEN_DIALOG: Displays the navigation screen allowing the user to select a file from their PC directory.
  • GUI_DOWNLOAD: Downloads data from programs to files on the PC.
  • GUI_UPLOAD: Uploads data from PC files to our programs.

Another way to view the content of the CL_GUI_FRONTEND_SERVICES class is by entering the Class Builder, which is the SE24 transaction.

Searching for Files on the PC

To search for local files in our PC directory, we will use the FILE_OPEN_DIALOG method.

*--------------------------------------------------------------------*
* Selection Screen
*--------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK z2 WITH FRAME TITLE TEXT-007.
* Input File Parameter
PARAMETERS: p_path LIKE rlgrap-filename.

SELECTION-SCREEN END OF BLOCK z2.

*--------------------------------------------------------------------*
START-OF-SELECTION.
*--------------------------------------------------------------------*
* Open File Window
PERFORM open_file_window.

*&---------------------------------------------------------------------*
*& Form OPEN_FILE_WINDOW
*&---------------------------------------------------------------------*
* This form opens a dialog window for selecting files.
*----------------------------------------------------------------------*
FORM open_file_window.

DATA: tl_filetable TYPE filetable,
wl_file_table TYPE file_table,
vl_rc TYPE i.

CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Test Window Title'
default_filename = '*'
CHANGING
rc = vl_rc
file_table = tl_filetable.

READ TABLE tl_filetable INDEX 1 INTO wl_file_table.

IF sy-subrc EQ 0.
MOVE wl_file_table TO p_path.
ENDIF.
ENDFORM. " OPEN_FILE_WINDOW"

Key parameters of the method:

  • WINDOW_TITLE: Assigns a title to the search window.
  • DEFAULT_FILENAME: Contains the name of the file we are looking for on our PC. Using an asterisk allows us to see all files in the directories.
  • FILE_TABLE: Contains the path and name of the selected file.

Like functions, the FILE_OPEN_DIALOG method has defined exceptions, each associated with a description covering possible errors that may occur when executing the method.

It is advisable to use the FILE_OPEN_DIALOG method in ABAP programs dealing with local files, as it significantly facilitates interaction between the user and the program, preventing data typing errors.

Reading Data from Local Files

To read data from local files into the internal tables of our programs, we will use the GUI_UPLOAD method.

The double brackets used on the right of the internal table name lifted using the upload method are a requirement of the method and simply fulfill a syntax requirement of the method.

*----------------------------------------------------------------------*
* Data Declaration
*----------------------------------------------------------------------*
* User Table
DATA: BEGIN OF ti_file OCCURS 0,
dni(8) TYPE c, " DNI
fullname(35) TYPE c, " Fullname
status(1) TYPE c, " Status
birthdate(8) TYPE c, " Date of Birth
END OF ti_file.

DATA: wa_file LIKE LINE OF ti_file.

*--------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
*--------------------------------------------------------------------*
* Open File Window
PERFORM open_file_window.

*&---------------------------------------------------------------------*
*& Form UPLOAD_INPUT_FILE
*&---------------------------------------------------------------------*
* This form processes the input file.
*----------------------------------------------------------------------*
FORM upload_input_file.

DATA: vl_file TYPE string.

IF p_path IS INITIAL.
* The file path is blank
MESSAGE s000(z_prueba) WITH TEXT-003.
ELSE.

vl_file = p_path.

* Open the input file for reading
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = vl_file
filetype = 'ASC'
has_field_separator = ''
CHANGING
data_tab = ti_file[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19.

IF sy-subrc NE 0.
* Error uploading the input file
MESSAGE e000(z_prueba) WITH TEXT-004.
ENDIF.

IF ti_file[] IS INITIAL.
* The input file does not contain records
MESSAGE s000(z_prueba) WITH TEXT-005.
ENDIF.

ENDIF.

ENDFORM. " UPLOAD_INPUT_FILE"

Key parameters of the method:

  • FILENAME: Contains the directory and name of the local file we are working with.
  • FILETYPE: Contains the type or extension of the local file. Supported types include BIN for binary files, ASC for ASCII files, DAT for Excel files (columns separated by tabs, lines separated by line breaks), and WK1 for Excel and Lotus files.

Note that to upload an Excel file from our PC, the file should not have the .xls extension. Instead, modify the extension to .csv for proper reading by the upload function.

  • HAS_FIELD_SEPARATOR: Indicates that the local file has separators.
  • DATA_TAB: The internal table where we store the data from the local file.

This method has defined exceptions with descriptions covering possible errors that may occur when executing the method. In some ABAP programs, functions like WS_UPLOAD and UPLOAD are used. However, it is not advisable to use these functions as they are currently considered obsolete by SAP.

E.g

TestFile:

21567432A23071990Jaime Gomez

31987623I15061988Jorge Gomez

27982134A02121996Angelica Ramirez

*&---------------------------------------------------------------------*
*& Report ZTEST_ABAP_JEGA_21
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztest_abap_jega_21.

*----------------------------------------------------------------------*
* Data Declaration
*----------------------------------------------------------------------*
* User Table
DATA: BEGIN OF ti_file OCCURS 0,
dni(8) TYPE c, " DNI
status(1) TYPE c, " Status
birthdate(8) TYPE c, " Date of Birth
fullname(35) TYPE c, " Fullname
END OF ti_file.

DATA: wa_file LIKE LINE OF ti_file.

*--------------------------------------------------------------------*
* Selection Screen
*--------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK z2 WITH FRAME TITLE TEXT-007.
* Input File Parameter
PARAMETERS: p_path LIKE rlgrap-filename.

SELECTION-SCREEN END OF BLOCK z2.

*--------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
*--------------------------------------------------------------------*
* Call open window
PERFORM open_file_window.

*--------------------------------------------------------------------*
START-OF-SELECTION.
*--------------------------------------------------------------------*
* Upload input data
PERFORM upload_input_file.

*&---------------------------------------------------------------------*
*& Form OPEN_FILE_WINDOW
*&---------------------------------------------------------------------*
* This form opens a dialog window for selecting files.
*----------------------------------------------------------------------*
FORM open_file_window.
DATA: tl_filetable TYPE filetable,
wl_file_table TYPE file_table,
vl_rc TYPE i.

CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Test Window Title'
default_filename = '*'
CHANGING
rc = vl_rc
file_table = tl_filetable.

READ TABLE tl_filetable INDEX 1 INTO wl_file_table.

IF sy-subrc EQ 0.
MOVE wl_file_table TO p_path.
ENDIF.
ENDFORM. " OPEN_FILE_WINDOW"

*&---------------------------------------------------------------------*
*& Form UPLOAD_INPUT_FILE
*&---------------------------------------------------------------------*
* This form processes the input file.
*----------------------------------------------------------------------*
FORM upload_input_file.

DATA: vl_file TYPE string.

IF p_path IS INITIAL.
* The file path is blank
MESSAGE s000(z_prueba) WITH TEXT-003.
ELSE.

vl_file = p_path.

* Open the input file for reading
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = vl_file
filetype = 'ASC'
has_field_separator = ''
CHANGING
data_tab = ti_file[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19.

IF sy-subrc NE 0.
* Error uploading the input file
MESSAGE e000(z_test) WITH TEXT-004.
ENDIF.

IF ti_file[] IS INITIAL.
* The input file does not contain records
MESSAGE s000(z_test) WITH TEXT-005.
ELSE.
LOOP AT ti_file INTO DATA(wa_file_record).
WRITE:/ 'DNI:', wa_file_record-dni, ' ',
'FullName:', wa_file_record-fullname, ' ',
'Status:', wa_file_record-status, ' '.
ULINE.
ENDLOOP.
ENDIF.

ENDIF.
ENDFORM. " UPLOAD_INPUT_FILE"


 

 

 


Sobre el autor

Publicación académica de Jaime Eduardo Gomez Arango, en su ámbito de estudios para el Curso ABAP.

SAP Expert


Jaime Eduardo Gomez Arango

Profesión: Ingeniero de Sistemas y Computación - España - Legajo: SW34C

✒️Autor de: 149 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Presentación:

Ingeniero de sistemas y computación con 8 años de experiencia el desarrollo frontend & backend (react/node) y en cloud (aws), actualmente desarrollando habilidades en sap btp, ui5, abap y fiori.

Certificación Académica de Jaime Gomez

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Los archivos locales y el upload de datos" de la mano de nuestros alumnos.

SAP Expert


El resumen de "Los archivos locales y el upload de datos" se centra en las técnicas y herramientas utilizadas en la programación ABAP para interactuar con archivos que se encuentran en la computadora personal del usuario (archivos locales),. Herramientas Clave La funcionalidad para el tratamiento de archivos locales en ABAP se maneja a través de métodos proporcionados por la clase CL_GUI_FRONTEND_SERVICES. Aunque esta clase pertenece a la Programación Orientada a Objetos, sus métodos se ejecutan como si fueran módulos de funciones,. Los métodos más relevantes para la gestión de archivos locales son: Búsqueda y Selección de Archivos (FILE_OPEN_DIALOG)...

Acceder a esta publicación

Creado y Compartido por: Gabriel José Luces González

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master


Los archivos locales y el upload de datos Se explica la utilidad de la clase CliFrontEndServices para manejar archivos locales desde programas ABAP. Métodos utilizados como si fueran módulos de funciones. SE38 permite visualizar todos los métodos de la clase mediante el botón Modelo y la opción Patrón para objetos ABAP. SE24 también permite visualizar métodos dentro de la pestaña Métodos. Los tres métodos destacados: FileOpenDialog (selección de archivos), GuiDownload (descarga de datos a archivos locales), y GuiUpload (carga de archivos locales en la memoria del programa ABAP). Búsqueda y selección de archivos locales Método FileOpenDialog...

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio Romero

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Conceptos Clave: · Clase: CL_GUI_FRONTEND_SERVICES (Proporciona métodos para interactuar con el frontend). · Método para buscar archivos: FILE_OPEN_DIALOG · Muestra una ventana de diálogo para que el usuario seleccione un archivo de su PC. · Parámetros importantes: FILE_TABLE (devuelve la ruta del archivo seleccionado). · Método para leer datos: GUI_UPLOAD · Transfiere datos desde un archivo local a una tabla interna en ABAP. · Parámetros clave: · FILENAME: Ruta y nombre del archivo. · FILETYPE: Tipo de archivo (ej: 'ASC' para texto, 'BIN' para binario). · DATA_TAB: Tabla interna donde se almacenarán los...

Acceder a esta publicación

Creado y Compartido por: Mara Fadua Romero Hernandez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Introducción: Aprende a interactuar con archivos de tu PC (txt, Excel, etc.) desde SAP ABAP usando la clase CL_GUI_FRONTEND_SERVICES. Ideal para importar/exportar datos sin salir del sistema. 1 Métodos Clave para Archivos Locales Clase CL_GUI_FRONTEND_SERVICES Contiene herramientas para operaciones con archivos: FILE_OPEN_DIALOG: Abre ventana de exploración para seleccionar archivos. GUI_UPLOAD: Lee datos de archivos locales → tablas ABAP. GUI_DOWNLOAD: Escribe datos de tablas ABAP → archivos locales. Cómo explorar métodos: Transacción SE38 → Botón "Modelo" → Patrón p.objetos ABAP. Ingresar...

Acceder a esta publicación

Creado y Compartido por: Oscar Aravena Muller / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Los archivos locales y el upload de datos 1 El tratamiento de archivos locales Se introduce el uso de la clase CL_GUI_FRONTEND_SERVICES para manipular archivos locales. Esta clase incluye métodos reutilizables similares a módulos de funciones. Para ver sus métodos se puede utilizar el botón Modelo en SE38 o la transacción SE24. Métodos importantes: FILE_OPEN_DIALOG: permite al usuario seleccionar un archivo desde su PC. GUI_UPLOAD: carga datos desde archivos locales a la memoria. GUI_DOWNLOAD: graba datos desde memoria a archivos locales. 2 La busqueda de archivos en la PC Se detalla el uso del método FILE_OPEN_DIALOG para mostrar una ventana de navegación...

Acceder a esta publicación

Creado y Compartido por: Geovanny Martínez Campoverde

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert



Los Archivos Locales y el Upload de Datos en SAP En SAP, el trabajo con archivos locales y la carga (upload) de datos desde el equipo del usuario hacia el sistema es una funcionalidad esencial en múltiples escenarios: migraciones de datos, integraciones, procesos de carga masiva o tareas de mantenimiento. Este proceso permite a los usuarios transferir información contenida en archivos como .TXT, .CSV o .XLSX directamente a tablas internas de un programa ABAP, donde puede ser procesada, validada y almacenada en la base de datos de SAP. Estructura típica de un programa de upload en ABAP Un programa estándar de carga de datos suele tener la siguiente estructura: Pantalla de selección: Para que el...

Acceder a esta publicación

Creado y Compartido por: David Ibarra / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

Los archivos locales y el upload de datos 1. El tratamiento de archivos locales ABAP nos proporciona una serie de métodos muy útiles para el tratamiento de archivos locales ubicados en nuestra PC mediante la clase CL_GUI_FRONTEND_SERVICES. Los conceptos de clases y métodos son propios de la programación orientada a objetos en ABAP. Basta entender que los métodos se ejecutan como si fueran módulos de funciones. Clases: Son objetos de ABAP que se crean mediante la transacción estándar SE24. Métodos: Son procedimientos internos de una clase que definen el comportamiento de un objeto. Un método es un conjunto de instrucciones que realizan una determinada tarea y son similares...

Acceder a esta publicación

Creado y Compartido por: Mauricio Ezequiel Yedro

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Tratamiento de archivos locales A traves de la clase CL_GUI_FRONTEND_SERVICES podremos tratar archivos locales de nuestra PC. Las clases y los metodos se ejecutan como modulos de funciones en ABAP. Para visualizar todos los metodos disponibles de la clase CL_GUI_FRONTEND_SERVICES se tiene que precionar el boton Modelo de la barra de herramientas del editor ABAP. Luego se marca la opcion Patron p.objetos ABAP, despues Clase/Interface y se escribe el nombre de la clase. Luego en el matchcode de Metodo visualizaremos los que esten disponibles. Los metodos mas importantes para tratar archivos locales son: FILE_OPEN_DIALOG: muestra la pantalla que permite al usuario seleccionar un archivo del directorio del PC. GUI_DOWNLOAD: descarga...

Acceder a esta publicación

Creado y Compartido por: Luciano Martinez / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


ABAP nos proporciona una serie de métodos muy útiles para el tratamiento de archivos locales ubicados en nuestra PC mediante la clase CL_GUI_FRONTEND_SERVICES. Para grabar datos en archivos locales, hasta antes de trabajar con los métodos que proporciona la clase CL_GUI_FRONTEND_SERVICES, se utilizaban los módulos de funciones ‘DOWNLOAD’ y ‘WS_ DOWNLOAD’. Es importante destacar que 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...

Acceder a esta publicación

Creado y Compartido por: Jose Medina / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

El tratamiento de archivos locales: ABAP nos proparciona una serie de métodos muy útiles para el tratamiento de archivos locales ubicados en nuestra PC mediante la clace CL_GUI_FRONTEND_SERVICES. Los los conceptos de clases y métodos son propios en la programación orientada a objetos en ABAP. Para visualizar todos los métodos disponibles en la clase CL_GUI_FRONTEND, editamos un programa ABAP y hacemos clic en el botón Modelo de la barra de herramientas la transaccion SE38. Aqui marcamos la opción Patrón p.objetos ABAP y hacemos clic en el botón Continuar. En la siguienta pantalla ecribamos en Clase / Interface el nombre de la clase que es CL__GUI_FRONTEND_SERVICES. Y luego en el...

Acceder a esta publicación

Creado y Compartido por: Javier Miguel Angel Barcelo / Disponibilidad Laboral: PartTime

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

🔎Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!