✒️ABAP Los archivos locales y el upload de datos
ABAP Los archivos locales y el upload de datos
Archivos Locales: Upload de Datos.
1. Tratamiento de archivos locales: ABAP nos proporciona una serie de métodos muy útiles para el tratamiento de archivos locales ubicado en nuestra PC mediante la clase CL_GUI_FRONTEND_SERVICES.
Para visualizar todos los métodos disponibles en la clase, editamos un programa ABAP y presionamos el botón Modelo (Pattern).
- Se marca la Opción Patron p.objetos ABAP (ABAP Object Patterns) y presionamos continuar.
- En la siguiente pantalla en Clase/Interface escribimos lo siguiente: CL_GUI_FRONTEND_SERVICES
- Y luego presionamos F4 en el Metodo (method) y veremos una lista con los métodos de la clase.
Veremos en detalle los siguientes métodos:
FILE_OPEN_DIALOG: para mostrar la pantalla de navegación que permita al usuario poder seleccionar el archivo del directorio de su PC.
GUI_DOWNLOAD: para descargar datos de los programas a archivos en la PC.
GUI_UPLOAD: para bajar datos de los archivos de la PC a nuestros programas.
Nota: "Otra forma de visualizar el contenido de la clase CL_GUI_FRONTEND_SERVICES es ingresando al Class Builder que es la transacción SE24".
2. Búsqueda de archivos en la PC: Para buscar archivos locales en el directorio de nuestra PC, utilizaremos el método FILE_OPEN_DIALOG. 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
* window_title = 'safa'
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.
Analicemos los parámetros más importantes del método:
WINDOWS_TITLE: asigna un título a la ventana de búsqueda.
DEFAULT_FILNAME: contiene el nombre del archivo que buscamos en nuestra PC. si colocamos el literal asterisco podemos ver todos los archivos que se encuentra en el directorio.
FILE_TABLE: contiene la ruta y el nombre del archivo seleccionado.
Al igual que la funciones, el método FILE_OPEN_DIALOG contiene definidas excepciones. Cada una de ellas tiene asociada una descripción que contempla cada uno de los errores posibles que pueden ocurrir al ejecutar dicho método.
Nota "Es recomendable utilizar el metodo FILE_OPEN_DIALOG", en los programas ABAP que trabajan con archivos locales, ya que facilita ampliamnete la interaccion enre el usuario y el programa y evita errores de tipeo de datos.
3. Lectura de datos de los archivos locales: Para leer datos de los archivos locales en las tablas internas de nuestro programa, utilizaremos el metod GUI_UPLOAD.
DATA: vl_file TYPE string.
IF p_path IS INITIAL. * El path del archivo se encuentra en blanco
MESSAGE s000(z_prueba) WITH text-003.
ELSE.
vl_file = p_path. * Se abre el archivo de entrada para lectura
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = vl_file
filetype = 'ASC'
has_field_separator = ''
CHANGING
data_tab = ti_archivo[]
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.
IF ti_archivo[] IS INITIAL.
* El archivo de entrada no contiene registros
MESSAGE s000(z_prueba) WITH text-005.
ENDIF.
ENDIF.
Nota: los dobles corchetes que utilizamos en la tabla interna es un requisito del método.
Analicemos los parámetros más importantes del método:
- FILENAME: contiene el directorio y nombre del archivo local con el que estamos trabajando.
- FILETYPE: contiene el tipo y Extensión del archivo local.
Los tipos admitidos son:
- BIN: para archivos binarios
- ASC: para archivos ASCII.
- DAT: para archivos Excel, las columnas son separadas utilizando Tabs. Las líneas son separadas con saltos de linea.
- WK1: para archivos Excel y de lotus.
- HAS_FIELD_SEPARATOR: indica que el archivo local tiene separadores.
- DATA_TAB: es la tabla interna donde almacenaremos los datos del archivo local.
Nota: "hay que tomar en cuenta que si deseamos subir un archivo Excel tenemos que cambiar el formato de XSL a csv".
 
 
 
Sobre el autor
Publicación académica de Edward Henry Rosario Piezal, en su ámbito de estudios para la Carrera Consultor ABAP.
Edward Henry Rosario Piezal
Profesión: Ingeniero en Sistema - Republica Dominicana - Legajo: FM99R
✒️Autor de: 68 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Edward Rosario