UNIDAD 6: TRATAMIENTO DE ARCHIVOS Y FIELD SYMBOLS
LECCION 1: ARCHIVOS LOCALES: UPLOAD DE DATOS
1| Tratamiento de archivos locales
-Abap nos proporciona una serie de métodos, que son procedimientos
internos de una clase que definen el comportamiento de un objeto, y son muy útiles para el
tratamiento de archivos locales ubicados en nuestra PC.
Desde nuestro editor Abap podemos ver los métodos disponibles en la clase presionando el
botón MODELO. Aquí marcamos lo siguiente:
> Patrón p.objetos ABAP
° Método Call
CL_GUI_FRONTEND_SERVICES
Método (presionar F4).- para ver todos los métodos de la clase.
Veremos:
FILE_OPEN_DIALOG: muestra el directorio de la PC
GUI_DOWNLOAD: descargar datos a archivos PC
GUI_UPLOAD: bajar datos de los archivos de la PC a nuestro programa Abap
Nota.- Otra forma de visualizar el contenido de la clase es directamente con la TX SE24.
2| Búsqueda de archivos en la PC
- para realizar la búsqueda en el directorio de la PC, usaremos el método
CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
*--------------------------------------------------------
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 i INTO stl_file_table.
IF sy-subrc EQ 0.
MOVE stl_file_table TO p_path.
ENDIF.
*--------------------------------------------------------
WINDOWS_TITLE : asigna titulo a la ventana
DEFAULT_FILENAME: contendrá el archivo a buscar. si colocamos '*' veremos todos.
FILE_TABLE : la ruta y el archivo seleccionado.
Los métodos, también tienen definidas excepciones, por los errores que puedan ocurrir.
- FILE_OPEN_DIALOG, este método es recomendado en los programas Abap
3| Lectura de datos de los archivos locales
- Para leer datos de los archivos locales y cargarlas a nuestro programa usaremos,
CL_GUI_FRONTEND=>GUI_UPLOAD
*--------------------------------------------------------
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = vl_file
filetype = 'ASC'
has_filed_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_autorithy = 6
unknow_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.
*--------------------------------------------------------
FILENAME: contiene el directorio y archivo local de trabajo
FILETYPE: Contiene la extension archivo local, pueden ser de tipo:
BIN - binarios
ASC - ASCII
DAT - excel. las columnas separadas por TABS
las líneas separadas con salto de línea
WK1 - Excel y lotus
HAS_FIELD_SEPARATOR: indica que el archivo tiene separadores
DATA_TAB: tabla interna donde se almacenan los datos
Se definen también las excepciones que contemplan los errores en este método.