✒️ABAP Los archivos locales y el upload de datos
ABAP 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. Los métodos se ejecutan como si fueran módulos de funciones.
De todos los métodos que la clase CL_GUI_FRONTEND_SERVICES tiene disponible veremos en detalle los siguientes métodos que son los más importantes para tratar con archivos locales:
- FILE_OPEN_DIALOG: para mostrar la pantalla de navegación que permite al usuario poder seleccionar un archivo de directorio de su PC.
- GUI_DOWNLOAD: Para descargar datos de los programas ABAP que se encuentran en memoria a los archivos en la PC.
- GUI_UPLOAD:Para subir datos de los archivos de la PC a la memoria de modo de poder utilizarlos en los programas ABAP.
Otra forma de visualizar el contenido de la clase CL_GUI_FRONTEND_SERVICES es ingresando directamente al Generador de clases correspondiente a las transacciones estándar SE24.
A través de la transacción SE24 correspondiente al generador de clases vamos a poder crear modificar y visualizar todas las clases Z del sistema SAP Y también vamos a poder visualizar únicamente las clases estándar de SAP como es el caso de la clase CL_GUI_FRONTEND_SERVICES.
2. La búsqueda de archivos en la PC
Para buscar archivos locales en el directorio de nuestra PC, utilizaremos el método FILE_OPEN_DIALOG perteneciente a la clase CL_GUI_FRONTEND_SERVICES.
Declaramos dentro de la pantalla de selección el parámetro P_PATH el cual va a almacenar el directorio y nombre del archivo local de entrada.
Dentro del evento AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path vamos a declarar la subrutina.
Dentro de la subrutina vamos a ejecutar el método FILE_OPEN_DIALOG de la clase CL_GUI_FRONTEND_SERVICES.
Analicemos los parámetros más importantes del método FILE_OPEN_DIALOG:
- WINDOW_TITLE: asigna un título a la ventana de búsqueda.
- DEFAULT_FILENAME: contiene nel ombre del archivo que buscamos en nuestra PC. Si colocamos el literal asterisco (*) podremos ver todos los archivos que se encuentren en los directorios.
- FILE_TABLE: contiene la ruta y el nombre del archivo seleccionado.
Al igual que los módulos de funciones, el método FILE_OPEN_DIALOG tiene definidas excepciones. Cada excepción tiene asociada una descripción que contempla cada uno de los errores posibles que pueden ocurrir al ejecutar dicho método.
Es recomendable la utilización del método FILE_OPEN_DIALOG en los programas ABAP que trabajan con archivos locales, ya que facilita ampliamente la interacción entre el usuario y el programa y evita errores de tipeo de datos.
3. La lectura de datos de los archivos locales
Para leer datos de los archivos locales en las tablas internas de nuestros programas, utilizaremos el método GUI_UPLOAD perteneciente a la clase CL_GUI_FRONTEND_SERVICES.
Los dobles corchetes que se utilizan a la derecha del nombre de la tabla interna que se levanta utilizando el método Upload es un requisito del método y tiene que ver con que de esa forma estamos indicando el contenido de la tabla interna, no hay otra razón para utilizarlos sino simplemente la de cumplir con un requisito de sintaxis del método.
Analicemos los parámetros más importantes del método GUI_UPLOAD:
- FILENAME: contiene el directorio y nombre del archivo local con el que estamos trabajando.
- FILE TYPE: contiene el tipo o 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 línea.
- WK1: para archivos Excel y de Lotus.
Debemos tener en cuenta que si deseamos levantar un archivo Excel ubicada nuestra PC el archivo no debe tener la extensión .XLS sino que debemos modificar su extensión a .CSV para poder ser leído por la función de UPLOAD correctamente
- HAS_FIELD_SEPARATOR: indica que el archivo local tiene separadores.
- DATA_TAB: es la tabla interna donde almacenaremos los datos del archivo local.
En este método están definidas excepciones con descripciones que contemplan cada uno de los errores que se pueden producir al ejecutar el método.
En algunos programas ABAP, podemos ver que se utilizan los módulos de funciones WS_UPLOAD y UPLOAD.
No es recomendable la utilización de estos módulos de funciones debido a que actualmente son considerados objetos obsoletos por SAP.
 
 
 
Sobre el autor
Publicación académica de Alexis Jesus Perez Ramirez, en su ámbito de estudios para la Carrera Consultor ABAP.
Alexis Jesus Perez Ramirez
Profesión: Licenciado en Computación - Venezuela - Legajo: LK96B
✒️Autor de: 69 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Licenciado en computación egresado de la ucv, con amplia experiencia en base de datos, análisis de sistemas y programación; tanto en ambiente web, cliente/servidor como en computación central.
Certificación Académica de Alexis Perez