¿Cómo se utiliza el asistente de mapeo?
Mapeo
Técnicamente hablando, todos los objetos en objetos ABAP existen de forma transitoria en la sesión interna de un programa ABAP – incluyendo objetos persistentes que gestionan el servicio de persistencia.
Por el contrario, los datos del sistema SAP existe de forma persistente en la base de datos.
La persistencia de los objetos se logra mediante la asignación de tablas de bases de datos y los atributos de las clases persistentes.
Asistente de mapeo
El asistente de mapeo se encarga con el mapeo entre la vista de base de datos relacional y la vista orientada a objetos.
El mapeo forma una parte importante en la creación de clases persistentes.
El asistente de mapeo es una herramienta integrada en el Generador de clases.
En principio, se procede de la siguiente manera:
A. Se crea un modelo de objetos y diseño de clases. Si deseamos aplicar la programación orientada a objetos a las tablas de bases de datos existentes o tablas de bases de datos que se creemos, debemos de seguir el modelo relacional, los resultados del modelo de objetos del modelo relacional.
B. Definir cada clase en el Generador de clases, elegir el atributo de clase persistente para cada uno. El sistema asigna un GUID global único para cada clase (como lo hace para todas las clases en el Generador de clases) y genera las clases auxiliares específicas de clase para los Servicios de persistencia. El GUID de la clase no es de importancia en la aplicación para las clases normales, pero es importante para las clases persistentes, ya que el servicio de persistencia trabaja con este ID.
C. Definir el mapeo de persistencia con el asistente de mapeo. Existen dos posibilidades para definir el mapeo:
- Seleccionando una o más tablas de bases de datos, vistas de base de datos, o estructuras.
Es posible que tengamos que crear nuevas tablas de bases de datos, vistas de base de datos, o estructuras para el modelo de objetos en el Diccionario ABAP. En la actualidad el sistema no realiza esta función automáticamente.
Hay tres maneras de crear la asignación de persistencia. Estos tipos de correspondencia se basan en las claves de las tablas de base de datos o puntos de vista de base de datos y sus documentos de identidad. Se diferencia entre:
- Mapeo con claves de negocio
- El uso de un mapeo con GUID
- El uso de mapeo GUID de instancia y claves de negocio
Los tres tipos de mapeo requieren tablas de base de datos, vistas de base de datos, o estructuras de diccionario ABAP que se pueden utilizar para generar atributos y métodos de la clase persistente y su clase actor.
- Podemos asignar todas las columnas de las tablas de bases de datos, las vistas de base, o componentes de las estructuras de los atributos de la clase persistente. Esto define:
- El tipo de asignación
- Los atributos de valor
- Los atributos de referencia, compuestos por el GUID de clase y una instancia GUID, que nos permiten hacer referencia a los objetos de base de datos persistentes.
Nota: Debemos asignar todas las columnas de una tabla de base de datos como atributos. Si sólo deseamos administrar algunas de las columnas utilizando Servicios de persistencia, debemos crear una vista de la base de datos.
Mapeo de una Tabla
Es la forma más simple de mapeo, se asigna exactamente una tabla de base de datos para una clase persistente.
Esto se conoce como el mapeo de una sola tabla.
En tiempo de ejecución, el sistema mapea a un objeto persistente de la clase persistente a exactamente una entrada de esta tabla.
Dentro de una sesión interna, el servicio de persistencia proporciona una conexión única entre el objeto y la base de datos.
Mapeo de múltiples tablas
Como alternativa, podemos asignar varias tablas de bases de datos a una clase persistente. Esto se conoce como el mapeo de múltiples tablas. Luego, en tiempo de ejecución, el sistema conecta a cada objeto persistente de esta clase para una entrada en cada una de las tablas involucradas. La clave de cada una de estas tablas debe tener el mismo tipo. El mapeo de varias tablas también es compatible con los tres tipos de esquema de asignación.
Mapeo de la estructura
En este caso se mapean estructuras del diccionario de datos ABAP, en lugar de tablas de base de datos o vista de base de datos a objetos persistentes.
Por tanto, el desarrollador debe programar el tipo de almacenamiento de datos persistente en los métodos apropiados del actor clase.
Tendremos que asignar una estructura (o estructuras) si deseamos que un objeto persistente contenga atributos de tabla similar.
Las tablas de la base de datos sólo pueden tener estructuras planas, lo que impide su mapeo del objeto a una tabla en este caso.
No obstante, debemos utilizar la asignación de estructura, incluso si deseamos almacenar los datos de una forma diferente, como en un archivo en el servidor de aplicaciones.
Para entenderlo vamos a crear un ejemplo práctico, en el diccionario de datos (SE11) creamos la tabla ZPED_LOGALI. En la tabla creamos los siguientes cinco campos:
- MANDT con el elemento de datos MANDT (campo clave)
- VBELN con el elemento de datos VBELN_VA (campo clave)
- ERDAT con el elemento de datos ERDAT
- ERZET con el elemento de datos ERZET
- ERNAM con el elemento de datos ERNAM
Utilizando el asistente de mapeo creamos la persistencia de la clase ZCL_PEDIDOS_LOGALI mapeando los campos de la tabla.
Tenemos que seguir los siguientes pasos:
- En el Diccionario de datos (SE11) rellenamos el campo Tabla base de datos con el nombre de la tabla y continuamos pulsando el botón Crear.
- Rellenamos el campo Descripción breve y seleccionamos la clase de entrega A (Tabla aplicación). Del desplegable Browser datos/Actual. vista tabla seleccionamos la opción /Actual. permitida.
- Creamos los cinco campos en la pestaña Campos.
- En Opciones técnicas seleccionamos la clase de datos APPL0 y la Categ. tamaño 0.
- Grabamos y activamos la tabla.
- En la transacción del Generador de clases (SE24) rellenamos el campo Tipo objeto con el nombre de la clase de persistencia y continuamos utilizando el botón Modificar.
- Utilizamos el botón Persistencia de la barra de herramientas para crear la persistencia (o navegando por el menú en Pasar aà persistencia.
- Informamos el campo Tabla/Estructura con el nombre de la tabla creada en el diccionario de datos.
- Con doble clic sobre el nombre del primero campo (VBELN), el sistema ofrece la posibilidad de crearlo como atributo de la clase. Utilizamos la flecha para mapear el campo de la tabla como atributo de la clase.
- Utilizamos el asistente y la flecha para mapear todos los campos de la tabla como atributos de la clase.
- Grabamos las modificaciones y volvemos al formulario de la clase. En la pestaña Atributos podemos ver los campos de la tabla como atributos de la clase.
- En la pestaña Métodos podemos ver los métodos GET y SET de los atributos creados.
- Activamos la clase.
se puede hacer con mas de una tabla ? gracias
Hola Carlos,
Al principio del artículo está detallada tu consulta, en la sección Mapeo de múltiples tablas:
Le copio el texto:
Como alternativa, podemos asignar varias tablas de bases de datos a una clase persistente. Esto se conoce como el mapeo de múltiples tablas. Luego, en tiempo de ejecución, el sistema conecta a cada objeto persistente de esta clase para una entrada en cada una de las tablas involucradas. La clave de cada una de estas tablas debe tener el mismo tipo. El mapeo de varias tablas también es compatible con los tres tipos de esquema de asignación.
Un saludo.