✒️ABAP Los archivos locales y el download de datos
ABAP Los archivos locales y el download de datos
ARCHIVOS LOCALES: DOWNLOAD DE DATOS
GRABACIÓN DE DATOS EN ARCHIVOS LOCALES
Para grabar datos existentes en las tablas internas de nuestros programas a archivos ubicados en la PC utilizaremos el método CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD: Ejemplo.
FORM grabar_archivo_salida .
* Grabo los datos en el archivo local
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = 'C: ARCHIVO_SALIDA.TXT'
filetype = 'ASC'
CHANGING
data_tab = ti_archivo[]
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " GRABAR_ARCHIVO_SALIDA
Algunos parámetros del método son:
FILENAME: Contiene el directorio y nombre del archivo a descargar a la PC.
FILETYPE: Contiene el tipo o extensión del archivo que descargamos a la PC.
Tipos o extensiones admitidas:
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 líneas son separadas con saltos de línea.
WK1: Para archivos excel y de lotus.
WRITE_FIELD_SEPARATOR: Indica si se genererá un separador de un archivo o no y cual será.
DATA_TAB: Aquí se almacena el contenido del archivo. Esta tabla debe tener la misma estructura del archivo.
En este método estan definidas excepciones con descripciones que contemplan cada uno de los errores que se pueden producir al ejecutar el método.
Luego si ejecutamos el código veremos el mensaje que dice que la transferencia de datos se realizó correctamente y se especifica la cantidad de bytes transferidos:
NOTA: En algunos programas ABAP, podemos ver que se utilizan las funciones DOWNLOAD y WS_DOWNLOAD, no es recomendable usarlas, son consideradas obsoletas por SAP.
AUDIO: Mediante el botón modelo que se encuentra a la derecha de la barra de herramientas podemos generar las estructuras de todos los módulos de funciones y métodos pertenecientes a clases que deseamos utilizar en nuestros programas. Dando click en el botón observaremos una ventana de diálogo donde seleccionamos la opción PATRÓN PARA OBJETOS ABAP si deseamos generar la estructura de un Método de una Clase o la opción CALL FUNCTION si deseamos generar la estructura de un módulo de funciones. Ahora bien si deseamos generar la Estructura de uno de los Metodos de la Clase CL_GUI_FRONTEND_SERVICES, entonces luego de seleccionar PATRÓN PARA OBJETOS ABAP presionamos el botón Continuar. Luego manteniendo seleccionada la Opcion METODO CALL, ingresamos en Clase Interfaces, el nombre de la clase CL_GUI_FRONTEND_SERVICES y dentro del Campo de Entrada del Metodo presionamos F4, para buscar el método que estamos necesitando. Alli por ejemplo podemos seleccionar el Método FILE OPEN DIALOGUE y presionar continuar en la ventana de dialogo. Finalmente esto va a provocar que se genere el esqueleto o estructura del Metodo en el código ABAP con el que estamos trabajando. Vale la pena destacar que para que dichas estructuras o esqueletos de los módulos de funciones o métodos se generen en el código del programa debemos estar modificando el programa
 
 
 
Sobre el autor
Publicación académica de Alexander Castellanos, en su ámbito de estudios para la Carrera Consultor ABAP.
Alexander Castellanos
Profesión: Ingeniero de Sistemas - Colombia - Legajo: JS42A
✒️Autor de: 67 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Alexander Castellanos