✒️ABAP Los archivos locales y el upload de datos
ABAP Los archivos locales y el upload de datos
ARCHIVOS LOCALES: UPLOAD DE DATOS
TRATAMIENTO DE ARCHIVOS LOCALES
ABAP proporciona métodos útiles para el tratamiento de archivos locales mediante la clase CL_GUI_FRONTEND_SERVICES.
NOTA: CLASE: Objetos ABAP que se crean mediante la transacción SE24. Referida a las estrategias de liberación, las Clases permiten agrupar las Caracteristicas, para luego ser asignadas a los Grupos de liberación y definir los datos del documento tomados en cuenta en la elección de la estrategia. METODOS: Son procedimientos internos de una clase que definen el comportamiento de un objeto. CL_GUI_FRONTEND_SERVICES es un método estándar de SAP que se utiliza para descargar Archivos locales.
Los métodos se ejecutan como si fueran funciones.
Para visualizar los métodos disponibles de una clase, editamos un programa en ABAP y pulsamos en el botón Modelo (Pattern).
Aquí marcamos la opcion Patrón p.objetos ABAP (ABAP Object Patterns) y presionamos continuar:
En la siguiente pantalla, en Método Call, en Clase/Interface, escribimos: CL_GUI_FRONTEND_SERVICES:
Y Luego pulsamos en el boton desplegable de Método (o F4) y veremos todos los métodos de la clase.
Por ejemplo los metodos:
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 el PC.
GUI_UPLOAD: Para bajar datos de los archivos del PC a los programas.
NOTA: Otra forma de visualizar todos los métodos de una clase, sería a través de la transacción SE24 (Class Builder).
BÚSQUEDA DE ARCHIVOS EN EL PC
Para buscar archivos los cales en el directorio de nuestra PC, utilizaremos el método CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG:
FORM abrir_ventana_archivos .
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 1 INTO stl_file_table.
IF sy-subrc EQ 0.
MOVE stl_file_table TO p_path.
ENDIF.
ENDFORM. " ABRIR_VENTANA_ARCHIVOS
NOTA: Metodo CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG, metodo estandar de ABAP que se utiliza para la busqueda de archivos en el directorio de la PC.
Los parámetros más importantes del método son:
· WINDOWS_TITLE: Asigna un título a la ventana de búsqueda
· DEFAULT_FILENAME: Contiene el nombre del archivo que buscamos en el PC. Si colocamos el literal asterisco podremos ver todos los archivos que se encuentran en los directorios.
· FILE_TABLE: Contiene la ruta y nombre del archivo seleccionado.
Al igual que las funciones, este método tiene definida excepciones. Cada excepción tiene asociada una descripción, contemplando asi todos los posibles errores que ocurran al ejecutar dicho método.
Si ejecutamos el código anterior vemos la siguiente VENTANA DE DIALOGO:
NOTA: Ventana de Dialogo, ventana ABAP que aparecerá por encima de la pantalla principal que se está ejecutando y que requiere cierta interacción con el usuario. En SAP BI ventana que aparecerá por encima de la ventana que se está ejecutando y con la cual el usuario puede interactuar.
NOTA: Es recomendable el uso del método FILE_OPEN_DIALOG, en los programas ABAP que trabajen con archivos locales, ya que facilita ampliamente la interacción entre el usuario y el programa, asi mismo se evita errores de tipeo de datos.
LECTURA DE DATOS DE LOS ARCHIVOS LOCALES
Para leer datos de los archivos locales en las tablas internas de nuestros programas, utilizamremos el método CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD:
FORM levantar_archivo_entrada .
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.
ENDFORM. " LEVANTAR_ARCHIVO_ENTRADA
AUDIO: los dobles corteches que se utilizan dentro de la tabla interna que se levanta utilizando el método cl_gui_frontend_services=>gui_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 razon para utilizarlos sino simplemente la de cumplir por un requisito de sintaxis del método.
Los parámetros más importantes del método son:
- FILENAME: Contiene el directorio y nombre del archivo local con el que estamos trabajando.
- FILETYPE: Contiene el tipo o extensión del archivo local. Los tipos admitidos son:
o BIN: Archivos binarios.
o ASC: Archivos ASCII
o DAT: para Archivos Excel. Las columnas son separadas por tabs y las líneas son separadas por saltos de línea
o WK1: Archivos Excel y de Lotus
- HAS_FIELD_SEPARATOR: Indica que el archivo local tiene separadores.
-
 
 
 
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