Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Mapping  Dokument im Navigationsbaum lokalisieren

Alle Objekte von ABAP Objects, also auch die vom Persistenzdienst verwalteten persistenten Objekte persistenter Klassen, leben technisch gesehen immer nur transient im internen Modus eines ABAP-Programms, während die Daten des SAP-Systems persistent auf der Datenbank liegen. Die Persistenz von Objekten wird durch eine so genanntes Mapping zwischen Datenbanktabellen und den Attributen persistenter Klassen erreicht.

Mapping Assistant

Über das Mapping wird eine relationale Datenbanksicht mit einer objektorientierten Sichtweise verbunden. Mapping ist ein wichtiger Bestandteil beim Anlegen persistenter Klassen und wird von einem Mapping Assistant unterstützt, der in den Class Builder integriert ist. Die prinzipielle Vorgehensweise ist wie folgt:

...

       1.      Erstellung eines Objektmodells und Design der Klassen. Falls vorhandene Datenbanktabellen objektorientiert behandelt werden sollen oder neu zu erstellende Datenbanktabellen dem relationalen Modell folgen, ergibt sich das Objektmodell aus dem relationalen Modell.

       2.      Definition der einzelnen Klassen im Class Builder, wobei die Eigenschaft Persistente Klasse ausgewählt wird. Wie jeder Klasse, die im Class Builder angelegt wird, wird ihr intern eine global eindeutige Klassen-GUID zugewiesen und es werden automatisch die klassenspezifischen Hilfsklassen der Object Services generiert. Während bei normalen Klassen die Klassen-GUID in der Anwendung keine Rolle spielt, kommt ihr für persistente Klassen eine wichtige Bedeutung zu, da der Persistenzdienst mit dieser Kennung arbeitet.

       3.      Definition der Persistenzabbildung (Mapping mit dem Mapping Assistant)

...

                            a.      Auswahl einer oder mehrerer Datenbanktabellen, Datenbank-Views oder Strukturen

·         Gegebenenfalls müssen im ABAP Dictionary neue Datenbanktabellen, Datenbank-Views oder Strukturen für das Objektmodell angelegt werden. Dies geschieht zur Zeit nicht automatisch.

·         Bei der Persistenzabbildung kann das Mapping auf drei verschiedene Arten vorgenommen werden. Diese Mappingtypen richten sich nach den Schlüsseln der Datenbanktabellen bzw. , Datenbank-Views und ihrer Kennzeichnung. Wir unterscheiden

Mapping über Business Keys
Mapping über eine Instanz-GUID
Mapping über Instanz-GUID und Business Keys

Die Voraussetzung aller drei Mappingtypen sind immer Datenbanktabellen, Datenbank-Views oder Strukturen des ABAP Dictionary, auf deren Grundlage Attribute und Methoden der persistenten Klasse und ihres Klassenakteurs erzeugt werden.

                            b.      Zuordnung aller Spalten der Datenbanktabellen, Datenbank-Views oder Komponenten von Strukturen zu den Attributen der persistenten Klasse. Dabei werden festgelegt:

·         der Mappingtyp

·         die Wert-Attribute

·         die Referenzattribute, die intern aus einer Klassen-GUID und einer Instanz-GUID zusammengesetzt sind und damit den Verweis auf persistente Objekte in der Datenbank erlauben.

Achtung

Es müssen alle Spalten einer Datenbanktabelle auf Attribute gemappt werden. Wenn Sie nur einen Teil der Spalten über Object Services verwalten wollen, müssen Sie einen Datenbank-View anlegen.

 

Ein-Tabellen-Mapping

Im einfachsten Fall wird genau eine Datenbanktabelle einer persistenten Klasse zugeordnet (Ein-Tabellen-Mapping). Dann ist zur Laufzeit ein persistentes Objekt der persistenten Klasse mit genau einem Eintrag in dieser Tabelle verknüpft. Der Persistenzdienst sorgt (innerhalb eines internen Modus) für die eineindeutige Verbindung zwischen Tabelleneintrag und Objekt.

Diese Grafik wird im zugehörigen Text erklärt

Mehr-Tabellen-Mapping

Es können mehrere Datenbanktabellen einer persistenten Klasse zugeordnet werden (Mehr-Tabellen-Mapping). Dann ist ein persistentes Objekt dieser Klasse zur Laufzeit mit jeweils einem Eintrag jeder der beteiligten Tabellen verknüpft. Die Schlüssel der beteiligten Tabellen müssen dafür vom gleichen Typ sein. Alle drei Mappingtypen sind auch beim Mehr-Tabellen-Mapping möglich.

Diese Grafik wird im zugehörigen Text erklärt

Struktur-Mapping

Beim Struktur-Mapping wird keine Zuordnung zu Datenbanktabellen oder Datenbank-Views sondern zu Strukturen des ABAP Dictionary durchgeführt. Die Art der persistenten Datenspeicherung muß in diesem Fall also vom Anwendungsentwickler selbst in den entsprechenden Methoden des Klassenakteurs programmiert werden.

Ein Struktur-Mapping ist beispielsweise notwendig, wenn ein persistentes Objekt tabellenartige Attribute enthalten soll. Da Datenbanktabellen nur flache Strukturen haben, ist eine Tabellen-Mapping hier nicht möglich. Auch wenn eine andere persistente Datenablage, wie z.B. Dateien auf dem Applikationsserver, verwendet werden soll, muß das Struktur-Mapping verwendet werden.

 

Ende des Inhaltsbereichs