✒️ABAP Los archivos locales y el upload de datos
ABAP Los archivos locales y el upload de datos
Tratamiento de archivos locales:
--------------------------------------------------------------------------------------------
Se realiza mediante la clase CL_GUI_FRONTEND_SERVICES.
--------------------------------------------------------------------------------------------
Para visualizar todos los métodos disponibles en la clase:
Editamos un programa ABAP.
Presionamos el botón 'Modelo'(Pattern).
En la ventana que nos aparece seleccionamos la opción 'Patrón p.objetos ABAP' y continuamos.
En la siguiente pantalla, seleccionamos 'Método Call' y completamos el campo 'Clase/Interface' con CL_GUI_FRONTEND_SERVICES.
Luego presionamos F4 en 'Método' y veremos una pantalla con todos los métodos de la clase.
------------------------------------------------------------------------------------
Algunos de ellos son:
FILE_OPEN_DIALOG:
Se utiliza para mostrar la pantalla de navegación que permita al usuario poder seleccionar el archivo del directorio de su PC.
GUI_DOWNLOAD:
Se utiliza para descargar datos de los programas a archivos en la PC.
GUI_UPLOAD:
Se utiliza para bajar datos de los archivos de la PC a nuestros programas.
--------------------------------------------------------------------------------------------
También se pueden visualizar a través de SE24 con el nombre de la clase.
--------------------------------------------------------------------------------------------
Búsqueda de archivos en la PC:
--------------------------------------------------------------------------------------------
Utilizaremos el método FILE_OPEN_DIALOG.
Es recomendable utilizarla ya que facilita ampliamente la interacción entre el usuario y el programa y evita errores de tipeo de datos.
--------------------------------------------------------------------------------------------
Ejemplo:
DATA: tl_filetable TYPE filetable,
stl_file_table TYPE file_table,
vl_rc TYPE i.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
default_filename = '*'
CHANGING
rc = vl_rc
file_table = tl_filetable.
READ TABLE tl_filetable INDEX 1 INTO stl_file_table.
IF sy-subrc EQ 0.
MOVE stl_file_table TO p_path.
ENDIF.
--------------------------------------------------------------------------------------------
Algunos parámetros:
WINDOW_TITLE:
Asigna un título a la ventana de búsqueda.
DEFAULT_FILENAME:
Contiene el nombre del archivo que buscamos en la PC.
Si colocamos '*' podremos ver todos los archivos que se encuentran en ese directorio.
FILE_TABLE:
Contiene la ruta y el nombre del archivo seleccionado.
--------------------------------------------------------------------------------------------
Lectura de datos de los archivos locales:
--------------------------------------------------------------------------------------------
Utilizaremos el método GUI_UPLOAD.
No es recomendable usar las funciones WS_UPLOAD o UPLOAD ya que son considerados objetos obsoletos de SAP.
--------------------------------------------------------------------------------------------
Ejemplo:
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = vl_file
filetype = 'ASC'
has_field_separator = ''
CHANGING
data_tab = ti_archivo[] *Los doble corchetes indican el contenido de la tabla interna. Requisito de sintaxis del método.
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 al levantar el archivo de entrada
MESSAGE e000(z_prueba) WITH text-004.
ENDIF.
--------------------------------------------------------------------------------------------
Algunos parámetros:
FILENAME:
Contiene el directorio y nombre del archivo local con el que trabajamos.
FILETYPE:
Contiene la extensión del archivo local.
Los admitidos son:
BIN.
Archivos binarios.
ASC.
Archivos ASCII.
DAT.
Archivos Excel. Columnas separadas usando tabs.
WK1.
Archivos Excel y de Lotus.
HAS_FIELD_SEPARATOR:
Indica que el archivo local tiene separadores.
DATA_TAB:
Tabla interna donde almacenaremos los datos del archivo local.
--------------------------------------------------------------------------------------------
 
 
 
Sobre el autor
Publicación académica de Martin Alejandro Goya, en su ámbito de estudios para la Carrera Consultor ABAP.
Martin Alejandro Goya
Profesión: Ingeniero en Computacion - Argentina - Legajo: CJ13E
✒️Autor de: 49 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Martin Goya