Domänenmodellierung in SAP CAP

by | 12. März 2020 | SAP-CAP

Home » SAP » SAP-CAP » Domänenmodellierung in SAP CAP

Vorwort – Dieser Beitrag ist Teil der SAP-CAPM Serie.

Einleitung

Ein Domänenmodell in SAP CAP ist ein Modell, das die statischen, datenbezogenen Aspekte einer Problemdomäne in Form von Entity-Relationship-Modellen beschreibt. In diesem Artikel werden wir die Domänenmodellierung in SAP CAP im Detail untersuchen.

Domänenmodellierung

Vereinfacht ausgedrückt erzeugt ein CDS in SAP CAP ein Domänenmodell so, dass es das Geschäftsproblem in Bezug auf Schlüssel, Felder und Annotationen definiert. Der Code zum Generieren eines Domänenmodells wird in einem CDS-Schema (db/schema.cds) geschrieben. Diese Domänenmodelle können in Servicedefinitionen, Persistenzmodellen, Datenbanken verwendet oder sogar innerhalb eines anderen Domänenmodells wiederverwendet werden.

Beispielbeispiel:

Namensraum empInfo; mit {Currency, managed} von '@sap/cds/common'; Entität Mitarbeiter: verwaltet { Schlüssel-ID: Ganzzahl; firstName: lokalisierter String (111); lastName: lokalisierter String (1111); Manager: Assoziation zu Managern; dateofJoining: Integer; Gehalt: Dezimal (9,2); Währung: Währung; }

 

In diesem Beispiel haben wir eine Datei schema.cds erstellt, in der wir eine Entität Employees erstellt haben, die grundlegende Details eines Employees enthält

Dieses ganze Schema hat einen Namensraum bekommen, dh empInfo

Dieses Schema verwendet einen Standarddatentyp, dh Währung. Die Verwendung des Standarddatentyps wie dieser hilft uns, alle damit verbundenen vordefinierten Werthilfen bereitzustellen.

Wir verwenden CDS, um ein Modell zu erstellen. In diesem CDS verwenden wir

  1. Entitäten, die eine Menge einzigartiger Objekte darstellen, z. B.:
    1. Basisinformationen für Mitarbeiter
    2. Informationen zur Mitarbeiterkommunikation
    3. Informationen zum Mitarbeitergehalt
  2. Assoziationen zum Definieren von Beziehungen
    1. Manager-Zuordnung zu einer anderen Entität Manager, die alle Manager-Listen enthält

Namenskonvention & Empfehlungen

  1. Der Name des Unternehmens sollte mit einem Großbuchstaben beginnen und für den Menschen lesbar und selbsterklärend sein – zum Beispiel Mitarbeiter
  2. Beginnen Sie Elemente mit einem Kleinbuchstaben – zum Beispiel firstName
  3. Es wird empfohlen, die Pluralform von Entitäten zu verwenden – zum Beispiel Mitarbeiter
  4. Es wird empfohlen, die Singularform von Typen zu verwenden – zum Beispiel Währung
  5. Kontexte nicht wiederholen – zum Beispiel Employees.name statt Employees.EmployeeName
  6. bevorzugen Ein-Wort-Namen – zum Beispiel Gehalt statt GehaltBetrag
  7. ID für technische Primärschlüssel verwenden – zum Beispiel ID für Mitarbeiter-ID
  8. Sie können Namespace verwenden, um Ihre Entitäten eindeutig zu machen. Es ist wie beim Client-Konzept in SAP, bei dem Sie doppelte Schemata (cds-Dateien) mit eindeutigem Namespace haben können, um sie zu unterscheiden. Namespaces sind optional. Verwenden Sie Namespaces, wenn Ihre Modelle in anderen Projekten wiederverwendet werden könnten. Letztendlich sind es nur Präfixe, die automatisch auf alle relevanten Namen in einer Datei angewendet werden. - beispielsweise,

Namespace-Laptop;Entität Dell {}

..… ist äquivalent zu:

Entität laptop.Dell {}

  1. Sie können Kontexte für verschachtelte Namespace-Abschnitte verwenden. - beispielsweise,

Namespace-Laptop;Entität Dell {}           //> laptop.DellKontext Apple { Entität MacBookPro {}       //> laptop.Apple.MacBookPro     Entität MacBookAir {} }

 

Entities

Entitäten sind wie Tabellen mit Primärschlüsseln. Wir können CRUD-Operationen mit diesen Entitäten ausführen. Halten Sie es so flach wie möglich. Übernormalisieren Sie es nicht. Verwenden Sie keine nicht wiederverwendbaren Typen. Dieser Abschnitt dient nur der Modellierung, es sollten nur Anmerkungen zu einzelnen Feldern hinzugefügt werden und keine technischen Details (Logiken) hinzugefügt werden.

Typen

Typen sind wie Domäne in SAP ABAP, es wird verwendet, um den Typ von Datenelementen zu definieren.

Aspekte

Aspekte sind die Erweiterungen der Modelle und werden hauptsächlich verwendet, um die bestehenden Definitionen und Annotationen zu erweitern. Sobald ein Modell definiert ist, können wir verschiedene cds-Dateien (Aspect) verwenden, um ihnen für bestimmte Aufgaben Anmerkungen hinzuzufügen.

Beispielsweise-

  • cds– Ihr Kerndomänenmodell, sauber, einfach und verständlich gehalten
  • audit-model.cds– fügt zusätzliche Felder hinzu, die für das Auditing in einer Datei erforderlich sind
  • auth-model.cds– fügt Anmerkungen für die Autorisierung hinzu.

Primärschlüssel

Wie Tabellen & CDS in SAP ABAP pflegen wir Primärschlüssel für Entität mit Schlüsselwort Key.

Ein Primärschlüssel kann im gesamten Modell wiederverwendet werden, indem die Methodik der gemeinsamen Definitionen verwendet wird.

Wir können ein common.cds-Modell erstellen, in dem alle allgemeinen Definitionen gespeichert werden können.

// gemeinsame Definitionen

Einheit StandardEntity { Schlüssel-ID : UUID; } Nun können diese allgemeinen Definitionen wie folgt wiederverwendet werden: using { StandardEntity } from './common'; Entität Mitarbeiter : StandardEntity { name : String; ... } Entity Manager: StandardEntity { Name: String; ... }

 

Die gemeinsame Datei wird bereits standardmäßig mit einer vordefinierten Entität namens . erstellt manche.

Zuordnen von UUIDs zu OData

CDS ordnet in allen OData-Modellen standardmäßig UUIDs Edm.Guid zu. Der OData-Standard stellt jedoch restriktive Regeln für Edm.Guid-Werte – zum Beispiel sind nur Zeichenfolgen mit Bindestrich erlaubt –, die mit vorhandenen Daten in Konflikt geraten können. Daher erlauben wir das Überschreiben der Standardzuordnung wie folgt:

Entität Bücher {

Schlüssel-ID: UUID @odata.Typ:'Edm.String';

...

}

Bei Bedarf können Sie auch die Annotation @odata.MaxLength hinzufügen, um auch die entsprechende Eigenschaft zu überschreiben.

Verbände

Es wird verwendet, um die Beziehung zwischen zwei Entitäten zu definieren. Wie ABAP CDS verwenden wir auch hier das Wort Verband. Hier das Stichwort viele zeigt a an 0..* Kardinalität. Die Einschränkungen für die Kardinalität können als Einschränkung (wo-Bedingung) hinzugefügt werden – zum Beispiel mit nicht null.

Kompositionen

Im Gegensatz zu Assoziation, bei der wir ein Feld einer Entität mit den Objekten einer gesamten Entität verknüpfen, beziehen sich die Kompositionen nur auf ein bestimmtes Feld einer anderen Entität. Es hat den zusätzlichen Vorteil selbstverwalteter tiefer Operationen (Einfügen/Aktualisieren) und kaskadiertes Löschen (Löschen mehrerer abhängiger Tabellen).

// Definiere Bestellungen mit enthaltenen OrderItemsEntität Aufträge { Schlüssel-ID: UUID; Items : Zusammensetzung vieler Order_Items auf Items.parent=$self;}entity Order_Items { // ist nur über Bestellungen zugänglich  wichtiges Elternteil: Assoziation zu Orden; Schlüsselbuch : Assoziation zu Büchern; Menge : Ganzzahl;}

Best Practices

  1. Fügen Sie keine technischen Details in Modellen hinzu, wir verwenden Aspektedafür
  2. Nutzen Sie den  Kurznamen und einfache flache Modelle
  3. Normalisieren Sie die Entitäten in Modellen nicht zu stark
  4. Verwenden Sie lokale Integer-Sequenzen, wenn Sie wirklich mit hohen Lasten und Volumina zu tun haben. Ansonsten UUIDs bevorzugen

Was wir bisher gelernt haben: Erstellung von Modell und Aspekten darüber .

Domänenmodellierung in SAP CAP

Autor

0 Kommentare

Einen Kommentar abgeben

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.

Autor