Beispieldatenmodell

Das Datenmodell in diesem Beispiel ist sehr einfach - es gibt eine einzige Datenbanktabelle, die Details zu Flugverbindungen enthält - eine Fluggesellschaft, eine Flugnummer, Details zum Abflugflughafen und zum Ziel.
Notiz
Nicht in der Abbildung enthalten sind zusätzliche Felder, die die Laufzeit benötigt, um die Parallelitätskontrolle zu verwalten. Diese werden wir uns wenig später ansehen.
Eine Datenbanktabelle anlegen
Zunächst sehen wir uns an, wie eine Datenbanktabelle angelegt wird.
Grundlegende Tabellenattribute definieren
Es wird nun gezeigt, wie grundlegende Tabellenattribute definiert werden.
Tabellendefinition hinzufügen
Das folgende Video zeigt, wie Sie eine Tabellendefinition hinzufügen.

Wenn Sie keinen eingebauten Typ des ABAP Dictionary verwenden, um den Typ einer Tabellenspalte anzugeben, verwenden Sie stattdessen ein Datenelement. Datenelemente sind ABAP-Dictionary-Objekte, die den Typ eines einzelnen Felds wie UUID oder Airline Code definieren. Datenelemente enthalten nicht nur eine technische Typbeschreibung, sondern auch semantische Informationen wie Feldbezeichner. Wenn Sie Datenelemente verwenden, um die Typen der Tabellenspalten zu definieren, kann das System die Feldbezeichner automatisch auf der generierten Benutzungsoberfläche verwenden.
Das Datenelement in der Abbildung „Datenelement" beschreibt das Feld „Fluggesellschaft". Es handelt sich um ein Zeichenfeld der Länge 3. Das System verwendet die Feldbezeichner automatisch auf der generierten Benutzungsoberfläche.

Um ein neues Datenelement anzulegen, wählen Sie File→New→Other, und geben Sie dann data element in das Feld Filter Text ein. Geben Sie einen Paketnamen und den Namen des Datenelements ein, und wählen Sie Weiter. Wählen Sie einen Transportauftrag aus, und wählen Sie Fertigstellen.
Anschließend müssen Sie einen Datentyp für das Datenelement angeben. Dies sollte eine Domäne sein. Im Beispiel wird die vorhandene Domäne /DMO/CITY wiederverwendet. Beachten Sie, dass beide Datenelemente dieselbe Domäne verwenden. Das bedeutet, wenn jemand die Länge der Domäne nachträglich ändert, gilt die Änderung für alle Datenelemente, die sie verwenden.
Abschließend geben Sie kurze, mittlere und lange Feldbezeichner sowie einen Bezeichner ein, der für Spaltenüberschriften verwendet wird. Wenn Sie später die Fiori-Elements-App generieren, verwendet das System diese Texte automatisch.

Jede Tabelle, die Sie definieren, muss einen Primärschlüssel haben. Dies ist eine Abfolge von Feldern am Anfang der Tabellenbeschreibung, die jeden Eintrag in der Tabelle eindeutig identifiziert.
Das erste Feld der Tabelle (und damit auch das erste Feld in der Schlüsseldefinition) muss das Mandantenfeld sein, das den Datentyp abap.clnt hat. Darüber hinaus ist es für unser Beispiel praktisch, eine UUID für den eindeutigen Schlüssel zu verwenden. Wenn Sie das Datenelement sysuuid_x16 verwenden, um den Typ dieses Feldes anzugeben, können Sie die UUID von der Laufzeit automatisch zuordnen lassen, wenn Sie einen neuen Datensatz anlegen.

Aus Gründen der Rückverfolgbarkeit wird empfohlen, einige administrative Informationen mit den Daten zu speichern, z.B. dem Benutzer, der die Daten und Zeitstempel für das Anlegen und die letzte Änderung angelegt oder geändert hat. Die Datenbanktabelle, die Sie anlegen, sollte die in der Abbildung dargestellten Felder enthalten.
Notiz
Diese Felder sind für den Generator, den wir später verwenden werden, obligatorisch. Damit dieser Generator ordnungsgemäß funktioniert, müssen die Felder auch mit den hier aufgeführten Datentypen definiert werden.
Insbesondere fieldslocal_last_changed_at und last_changed_at sind nicht nur administrative Felder. Im ABAP-RESTful-Anwendungsprogrammiermodell werden sie auch für die Parallelitätskontrolle verwendet.
Da RESTful-Anwendungen zustandslos sind, kann die Datenkonsistenz nicht allein durch exklusive Sperren sichergestellt werden. Das ABAP-RESTful-Anwendungsprogrammiermodell verwendet eine Mischung aus exklusiven Sperren und ETags, um Dateninkonsistenzen zu vermeiden. Ein ETag ist ein Feld, das seinen Wert ändert, wenn ein Datensatz aktualisiert wird. Durch den Vergleich des Werts des ETag-Felds kann das Framework sicherstellen, dass ein Datenset seit dem letzten Lesen nicht geändert wurde. Zeitstempel der letzten Änderung machen perfekte ETag-Felder.

Wenn Sie eine Datenbanktabelle in ADT aktivieren, legt das System die entsprechende physische Tabelle in der Datenbank an. Anschließend können Sie die zusätzlichen Objekte, die Sie für Ihre App benötigen, automatisch generieren.


