✒️ABAP / Los archivos locales y el upload de datos Por Juan Giron Ruiz

ABAP Los archivos locales y el upload de datos

ABAP Los archivos locales y el upload de datos

Tratamiento de archivos locales

ABAP nos pemite usar métodos predefinidos para hacer el tratamiento de archivos locales. Podemos usar la clase CL_GUI_FRONTEND_SERVICES.

  • Para observar los métodos de una clase podemos hacerlo de dos formas diferentes.
  • 1. En el editor de código le damos Pattern (modelo) y luego seleccionamos ABAP Object Pattern y le damos Clase/Interface y colocamos CL_GUI_FRONTEND_SERVICES, finalmente le damos en método y en la ayuda de búsqueda seleccionamos para que nos de todos los métodos que tiene esa clase.
  • 2. Podemos ver los métodos usando la tcode SE24.

Algunos de los métodos que tenemos son:

  • 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 la PC.
  • GUI_UPLOAD: para bajar datos de los archivos de la PC a nuestros programas.

FILE_OPEN_DIALOG:

En este método tenemos tres parámetros más importantes que son:

1. WINDOW_TITLE: Asinga un nombre a la ventana de búsqueda.

2. DEFAULT_FILENAME: Contiene el nombre del archivo que deseamos buscar en nuestra PC.

3. FILE_TABLE: Contiene la ruta y el nombre del archivo seleccionado.

LECTURA DE DATOS DE LOS ARCHIVOS LOCALES

Para leer datos de los archivos locales en las tablas internas de nuestros programas, utilziaremos el método GUI_UPLOAD.

En el métod GUI_UPLOAD, tenemos dos parámetros importantes que son:

1. FILENAME: Contiene el directorio y nombre del archivo local con el que estamos trabajando.

2. HAS_FIELD_SEPARATOR: Indica que el archivo local tiene separadores.

3. DATA_TAB: es la tabla interna donde almacenaremos los datos del archivo local.

4. FILETYPE: contiene el tipo o extensión del archivo local. Los tipos admitidos son:

  • BIN: para archivos binarios.
  • ASC: para achivos 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.

EJERCICIO

Leer la información de los usuarios y posteriormente grabarla en la base de datos. Para ello tendrá que verificar que el estado_civil del usuario sea el correcto. En caso de no ser el indicado por el dominio entonces debemos de detener el programa y no grabar nada.

SOLUCIÓN

*&---------------------------------------------------------------------*

*& Report ZUPLOAD_DATOS

*&---------------------------------------------------------------------*

*&

*&---------------------------------------------------------------------*

REPORT zupload_datos.

PARAMETERS: p_path LIKE rlgrap-filename.

*DATA: BEGIN OF ti_usuarios OCCURS 0,

* dni LIKE ztabla_usuarios-dni,

* nombre_ape LIKE ztabla_usuarios-nombre_ape,

* estado_usu LIKE ztabla_usuarios-estado_usu,

* direccion LIKE ztabla_usuarios-direccion,

* codigo_postal LIKE ztabla_usuarios-codigo_postal,

* f_nacimiento LIKE ztabla_usuarios-fecha_nac,

* estado_civil LIKE ztabla_usuarios-estado_civil,

* END OF ti_usuarios.

DATA: dni LIKE ztabla_usuarios-dni,

nombre_ape LIKE ztabla_usuarios-nombre_ape,

estado_usu LIKE ztabla_usuarios-estado_usu,

direccion LIKE ztabla_usuarios-direccion,

codigo_postal LIKE ztabla_usuarios-codigo_postal,

fecha_nac LIKE ztabla_usuarios-fecha_nac,

estado_civil LIKE ztabla_usuarios-estado_civil.

DATA: ti_usuarios LIKE ztabla_usuarios OCCURS 0 WITH HEADER LINE.

DATA: wa_user LIKE LINE OF ti_usuarios.

DATA: tmp_table TYPE TABLE OF string,

linea TYPE string.

DATA: domain TYPE string VALUE 'ZZ_ESTADO_CIVIL'.

DATA: ti_estado_civil TYPE TABLE OF ztabla_usuarios-estado_civil.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.

* Este evento nos permite que cuando seleccionamos el textview se habilite

* un icono que nos pemritira seleccionar el archivo.

PERFORM abrir_dialogo.

START-OF-SELECTION.

PERFORM obtener_dominio USING domain.

PERFORM hacer_upload.

PERFORM llenar_tabla TABLES tmp_table.

PERFORM cargar_base_datos TABLES ti_usuarios.

FORM abrir_dialogo.

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

window_title = 'Abrir archivo'

* default_extension =

default_filename = '*'

* file_filter = '.doc'

* with_encoding =

* initial_directory =

* multiselection =

CHANGING

file_table = tl_filetable

rc = vl_rc

* user_action =

* file_encoding =

EXCEPTIONS

file_open_dialog_failed = 1

cntl_error = 2

error_no_gui = 3

not_supported_by_gui = 4

OTHERS = 5.

READ TABLE tl_filetable INDEX 1 INTO stl_file_table. "Almacena la ruta

IF sy-subrc <> 0.

* Implement suitable error handling here

ELSE.

MOVE stl_file_table TO p_path.

ENDIF.

ENDFORM.

FORM hacer_upload.

DATA: vl_file TYPE string.

IF p_path IS INITIAL.

MESSAGE e000(demo) WITH 'No hay ruta'.

ELSE.

MOVE p_path TO vl_file.

CALL METHOD cl_gui_frontend_services=>gui_upload

EXPORTING

filename = vl_file

filetype = 'ASC'

* has_field_separator = ';'

* header_length = 0

* read_by_line = 'X'

* dat_mode = SPACE

* codepage = SPACE

* ignore_cerr = ABAP_TRUE

* replacement = '#'

* virus_scan_profile =

* IMPORTING

* filelength =

* header =

CHANGING

data_tab = tmp_table

* isscanperformed = SPACE

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 <> 0.

"implement suitable error handling here

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

IF tmp_table[] IS INITIAL.

MESSAGE: s000(demo) WITH 'Archivo sin datos'.

ENDIF.

ENDIF.

ENDFORM.

FORM llenar_tabla TABLES ti_users.

LOOP AT ti_users INTO linea.

SPLIT linea AT ';' INTO

dni

nombre_ape

estado_usu

direccion

codigo_postal

fecha_nac

estado_civil.

* Verificamos que efectivamente exista el estado civil de lo

* contrario se muestra un mensaje de error.

READ TABLE ti_estado_civil WITH KEY estado_civil TRANSPORTING NO FIELDS.

IF sy-subrc NE 0.

MESSAGE e000(demo) WITH 'El estado civil no es valido'.

ELSE.

ti_usuarios-dni = dni.

ti_usuarios-nombre_ape = nombre_ape.

ti_usuarios-estado_usu = estado_usu.

ti_usuarios-direccion = direccion.

ti_usuarios-codigo_postal = direccion.

ti_usuarios-fecha_nac = fecha_nac.

ti_usuarios-estado_civil = estado_civil.

APPEND ti_usuarios.

CLEAR ti_usuarios.

ENDIF.

ENDLOOP.

ENDFORM.

FORM cargar_base_datos TABLES ti_usuarios.

TRY.

INSERT ztabla_usuarios FROM TABLE ti_usuarios.

CATCH cx_sy_open_sql_db.

MESSAGE e000(demo) WITH 'error al intentar ingresar los datos a la db'.

ENDTRY.

IF sy-subrc <> 0.

MESSAGE e000(demo) WITH 'error al intentar ingresar los datos a la db'.

ELSE.

COMMIT WORK.

ENDIF.

ENDFORM.

FORM obtener_dominio USING VALUE(domain).

"https://www.erpworkbench.com/sap-dictionary/domain-values.htm

* DATA: it_dd07t TYPE STANDARD TABLE OF dd07t,

* wa_dd07t LIKE LINE OF it_dd07t.

* SELECT *

* FROM dd07t

* INTO TABLE it_dd07t

* WHERE domname EQ domain AND ddlanguage EQ sy-langu.

*

* LOOP AT it_dd07t INTO wa_dd07t.

* WRITE:/ wa_dd07t-domvalue_l.

* ENDLOOP.

SELECT domvalue_l

FROM dd07t

INTO TABLE ti_estado_civil

WHERE domname EQ domain AND ddlanguage = sy-langu.

ENDFORM.


 

 

 


Sobre el autor

Publicación académica de Juan Pablo Giron Ruiz, en su ámbito de estudios para el Curso ABAP.

SAP Senior

Juan Pablo Giron Ruiz

Colombia - Legajo: FG66E

✒️Autor de: 21 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Presentación:

Ingeniero electrónico con conocimientos sólidos en ciencias de la computación y magister en ciencias de ingeniería eléctrica. proactivo y amante a los retos profesionales.

Certificación Académica de Juan Giron

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Los archivos locales y el upload de datos" de la mano de nuestros alumnos.

SAP Expert


El resumen de "Los archivos locales y el upload de datos" se centra en las técnicas y herramientas utilizadas en la programación ABAP para interactuar con archivos que se encuentran en la computadora personal del usuario (archivos locales),. Herramientas Clave La funcionalidad para el tratamiento de archivos locales en ABAP se maneja a través de métodos proporcionados por la clase CL_GUI_FRONTEND_SERVICES. Aunque esta clase pertenece a la Programación Orientada a Objetos, sus métodos se ejecutan como si fueran módulos de funciones,. Los métodos más relevantes para la gestión de archivos locales son: Búsqueda y Selección de Archivos (FILE_OPEN_DIALOG)...

Acceder a esta publicación

Creado y Compartido por: Gabriel José Luces González

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master


Los archivos locales y el upload de datos Se explica la utilidad de la clase CliFrontEndServices para manejar archivos locales desde programas ABAP. Métodos utilizados como si fueran módulos de funciones. SE38 permite visualizar todos los métodos de la clase mediante el botón Modelo y la opción Patrón para objetos ABAP. SE24 también permite visualizar métodos dentro de la pestaña Métodos. Los tres métodos destacados: FileOpenDialog (selección de archivos), GuiDownload (descarga de datos a archivos locales), y GuiUpload (carga de archivos locales en la memoria del programa ABAP). Búsqueda y selección de archivos locales Método FileOpenDialog...

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio Romero

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Conceptos Clave: · Clase: CL_GUI_FRONTEND_SERVICES (Proporciona métodos para interactuar con el frontend). · Método para buscar archivos: FILE_OPEN_DIALOG · Muestra una ventana de diálogo para que el usuario seleccione un archivo de su PC. · Parámetros importantes: FILE_TABLE (devuelve la ruta del archivo seleccionado). · Método para leer datos: GUI_UPLOAD · Transfiere datos desde un archivo local a una tabla interna en ABAP. · Parámetros clave: · FILENAME: Ruta y nombre del archivo. · FILETYPE: Tipo de archivo (ej: 'ASC' para texto, 'BIN' para binario). · DATA_TAB: Tabla interna donde se almacenarán los...

Acceder a esta publicación

Creado y Compartido por: Mara Fadua Romero Hernandez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Introducción: Aprende a interactuar con archivos de tu PC (txt, Excel, etc.) desde SAP ABAP usando la clase CL_GUI_FRONTEND_SERVICES. Ideal para importar/exportar datos sin salir del sistema. 1 Métodos Clave para Archivos Locales Clase CL_GUI_FRONTEND_SERVICES Contiene herramientas para operaciones con archivos: FILE_OPEN_DIALOG: Abre ventana de exploración para seleccionar archivos. GUI_UPLOAD: Lee datos de archivos locales → tablas ABAP. GUI_DOWNLOAD: Escribe datos de tablas ABAP → archivos locales. Cómo explorar métodos: Transacción SE38 → Botón "Modelo" → Patrón p.objetos ABAP. Ingresar...

Acceder a esta publicación

Creado y Compartido por: Oscar Aravena Muller / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Los archivos locales y el upload de datos 1 El tratamiento de archivos locales Se introduce el uso de la clase CL_GUI_FRONTEND_SERVICES para manipular archivos locales. Esta clase incluye métodos reutilizables similares a módulos de funciones. Para ver sus métodos se puede utilizar el botón Modelo en SE38 o la transacción SE24. Métodos importantes: FILE_OPEN_DIALOG: permite al usuario seleccionar un archivo desde su PC. GUI_UPLOAD: carga datos desde archivos locales a la memoria. GUI_DOWNLOAD: graba datos desde memoria a archivos locales. 2 La busqueda de archivos en la PC Se detalla el uso del método FILE_OPEN_DIALOG para mostrar una ventana de navegación...

Acceder a esta publicación

Creado y Compartido por: Geovanny Martínez Campoverde

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert



Los Archivos Locales y el Upload de Datos en SAP En SAP, el trabajo con archivos locales y la carga (upload) de datos desde el equipo del usuario hacia el sistema es una funcionalidad esencial en múltiples escenarios: migraciones de datos, integraciones, procesos de carga masiva o tareas de mantenimiento. Este proceso permite a los usuarios transferir información contenida en archivos como .TXT, .CSV o .XLSX directamente a tablas internas de un programa ABAP, donde puede ser procesada, validada y almacenada en la base de datos de SAP. Estructura típica de un programa de upload en ABAP Un programa estándar de carga de datos suele tener la siguiente estructura: Pantalla de selección: Para que el...

Acceder a esta publicación

Creado y Compartido por: David Ibarra / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

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. Basta entender que los métodos se ejecutan como si fueran módulos de funciones. Clases: Son objetos de ABAP que se crean mediante la transacción estándar SE24. Métodos: Son procedimientos internos de una clase que definen el comportamiento de un objeto. Un método es un conjunto de instrucciones que realizan una determinada tarea y son similares...

Acceder a esta publicación

Creado y Compartido por: Mauricio Ezequiel Yedro

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Tratamiento de archivos locales A traves de la clase CL_GUI_FRONTEND_SERVICES podremos tratar archivos locales de nuestra PC. Las clases y los metodos se ejecutan como modulos de funciones en ABAP. Para visualizar todos los metodos disponibles de la clase CL_GUI_FRONTEND_SERVICES se tiene que precionar el boton Modelo de la barra de herramientas del editor ABAP. Luego se marca la opcion Patron p.objetos ABAP, despues Clase/Interface y se escribe el nombre de la clase. Luego en el matchcode de Metodo visualizaremos los que esten disponibles. Los metodos mas importantes para tratar archivos locales son: FILE_OPEN_DIALOG: muestra la pantalla que permite al usuario seleccionar un archivo del directorio del PC. GUI_DOWNLOAD: descarga...

Acceder a esta publicación

Creado y Compartido por: Luciano Martinez / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


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. Para grabar datos en archivos locales, hasta antes de trabajar con los métodos que proporciona la clase CL_GUI_FRONTEND_SERVICES, se utilizaban los módulos de funciones ‘DOWNLOAD’ y ‘WS_ DOWNLOAD’. Es importante destacar que a partir de la versión 4.7 estos módulos de función quedan obsoletos. Si bien siguen existiendo, SAP no les brinda más soporte y no garantiza que vayan a estar en futuras versiones, por lo cual sus funcionalidades deben ser implementadas mediante otros módulos de funciones o métodos...

Acceder a esta publicación

Creado y Compartido por: Jose Medina / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

El tratamiento de archivos locales: ABAP nos proparciona una serie de métodos muy útiles para el tratamiento de archivos locales ubicados en nuestra PC mediante la clace CL_GUI_FRONTEND_SERVICES. Los los conceptos de clases y métodos son propios en la programación orientada a objetos en ABAP. Para visualizar todos los métodos disponibles en la clase CL_GUI_FRONTEND, editamos un programa ABAP y hacemos clic en el botón Modelo de la barra de herramientas la transaccion SE38. Aqui marcamos la opción Patrón p.objetos ABAP y hacemos clic en el botón Continuar. En la siguienta pantalla ecribamos en Clase / Interface el nombre de la clase que es CL__GUI_FRONTEND_SERVICES. Y luego en el...

Acceder a esta publicación

Creado y Compartido por: Javier Miguel Angel Barcelo / Disponibilidad Laboral: PartTime

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

🔎Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!