
La grtabación de datos enarchivos locales:
Para grabarlos datos existentes en la tabla interna de nuestro programa ABAP en archivos locales ubicados en la PC, utilizamos el método GUI_DOWNLOAD perteneciente a lña clase CL_GUI_FRONTEND_SERVICES.
Analicemos algunos de los parámetros del método GUI_DOWNLOAD:
- FILENAME: contiene el directorio y el nombre del archivo a descargar a la PC.
- FILETYPE: contiene el tipo o extención del archivo que descargamos a la PC.
Los tipos o extenciones admitidas son las siguientes:
- BIN: para archivos binarios. Se debe especificar la longitud del archivo en el parámetro BIN_FILESIZE. La tabla interna que se utiliza debe tener un solo campo del tipo X.
- ASC: para archivos ASCII.
- DAT: para archivos Excel. las columnas son separadas utilizando tabs. Las lineas son separadas con saltos de linea.
- WK1:para archivos Excel y de Lotus.
- WRITE_FIELD_SEPARATOR: indica si se generará un separador de archivo o no y cual será.
- DATA_TAB: aqui se almasena el contenido del archivo. Esta tabla interna debe tener la misma estructura del archivo.
En el método GUI_DOWNLOAD se encuentra difinadas excepciones con descripciones que contemplan cada uno de los errores que se pueden producir al ejecutar el método.
Vamos a trabajar con un nuevo programa ABAP que se llamará ZTEST_DOWNLOAD, el cual levanta el archivo USUARIOS.TXT, almacenamos sus reguistros en la tabla interna TI_USUARIOS y por último escribe los registros de la tabla interna en un archivo de salida mediante la utilización del método GUI_DOWNLOAD.
Dentro de la subrutina ABRIR_VENTANA_ARCHIVOS se ejecuta el método FILE_OPEN_DIALOG para buscar el archivo local en el directorio de la PC.
Dentro de la subrutina LEVANTAR_ARCHIVO_ENTRADA se ejecuta el método GUI_UPLOAD para levantar a la memoria los registrosde datos almacenados en el archivo local de entrada.
Y dentro de la subrutina GRABAR_ARCHIVO_ SALIDA se ejecuta el método GUI_DOWNLOAD para grabar en un archivo local de salida los registros de datos que se encuentran almacenados en la tabla interna TI_USUARIOS.
Vamos a ejecutar el programa ZTEST_DOWNLOAD y para ello hacemos clic en el matchcode para buscvar el archivo de entrada USUARIOS.TXT. En la ventana de diálogo que se muestra a continuación el archivo de entrada USUARIOS.TXT haciendo doble clic sobre el. Y ahora con el directorio y el nombre del archivo de entrada completos vamos a ejecutar el programa.
Al ejecutarse el método GUI_UPLOAD dentro de la subrutina ABRIR_VENTANA_ARCHIVOS vamos a visualizar primeramente en la pantalla una ventana de diálogo en donde el sistema nos informa que se esta intentando acceder al archivo de entrada y debemos hacer clic en el botón Permitir para dar acceso. Luego si hacemos debugging vamos a visualizar los archivos de entrada levantadops en la tabla interna TI_USUARIOS. A copntinuación se va a ejecutar el método GUI_DOWNLOAD dentro de la subrutina GRABAR_ARCHIVOS_SALIDA.
Si intentamos grabar el archivo de salida en un directorio de nuestra PC en donde no tenemos permiso de escritura entonces vamos a visualizar en la barra de estado de la pantalla un mensaje de error que nos informa que el acceso al archivo fue denegado.
Si intentamos grabar el archivo local de salida en un directorio de nuestra PC en donde si tenemos permiso de escritura entonces vamos a visualizar en la pantalla una ventana de diálogo en donde el sistema nos iforma que se está intentando crear el archivo en el directorio y debemos hacer clic en el botón Permitir para continuar. Luego vamos a visualizar el siguiente mensaje de éxito en la barra de estado, el cual nos indica que la tranferencia de datos se realizó correctamente y se especifica de bytes transferida. Y si chequeamos el directorio que introducimos para la generación del archivo de salida, en este caso el escritorio de la PC, entonces vamos a visualizar el archivo generado. Y al abrir el archivo de salida vamos a visualizar el contenido del mismo que no es ni más ni menos que el miosmo contenido del archivo de entrada que utilizamos para la ejecución del programa.