Philipp Schurr
Philipp Schurr
 - 17. November 2018

Neue Fiori App in wenigen Schritten: Datenmodellierung mit CDS & BOPF

Wenn ein Entwickler die Anforderung erhält eine komplett neue Applikation aus dem Nichts zu entwickeln, muss er sich mit vielen Fragestellungen befassen:

  • Wie sieht mein Datenmodell aus und wie implementiere ich es?
  • Welche Geschäftsobjekte gibt es und welche Funktionalität benötigen diese?
  • Wie stelle ich die Einhaltung meiner Abhängigkeiten zwischen den Objekten sicher?
  • Wie implementiere ich Prüfmechanismen und Sperren?
  • Wie transportiere ich Daten ins UI?

Natürlich sind diese Fragen nicht zufällig ausgewählt. Wenn Sie die neuen Technologien unter S/4HANA richtig einsetzen, können Sie sich auf die konzeptionelle Beantwortung dieser Fragen konzentrieren. Die technische Umsetzung übernehmen dann Core Data Services (CDS) und das Business Object Processing Framework (BOPF) für Sie.

In meiner mehrteiligen Anleitung möchte ich Ihnen zeigen, wie Sie mit wenig Aufwand Ihre eigene Fiori App mit Hilfe von CDS und BOPF erstellen können. Als Beispiel erstellen wir dafür eine App, mit der Fluginformationen zu allgemeinen Verbindungen (z.B. LH404 von Frankfurt nach New York) und deren wirklichen Flüge (z.B. LH404 am 01.01.2019 um 13:30 Uhr) angezeigt und verändert werden können.
Dieser erste Teil beschäftigt sich mit der Anlage der Business Object CDS Views sowie der Generierung der dazugehörigen Business Objects.

CDS & BOPF – Wie funktioniert die Kombination?

Anhand des unten dargestellten S/4HANA Technologie-Stacks können Sie sehen, dass CDS und BOPF direkt aneinandergrenzen und ineinander greifen.

S4HANA Technologiestack

CDS Views sind zusammengefasst die „Next Generation“ Views in SAP. Die hierbei neu verwendeten Assoziationen unterscheiden sich auf den ersten Blick kaum vom altbekannten JOIN. Der hauptsächliche Unterschied ist, dass Assoziationen mit Kardinalitäten versehen werden und ein tatsächlicher JOIN nur zwischen Tabellen gebildet wird, wenn die Assoziation bei der Datenbankabfrage angegeben wird. Also sozusagen ein flexibles JOIN auf Abruf.
Außerdem können durch Annotationen die Metadaten einer CDS View definiert werden. Dadurch lassen sich Einstellungen wie bspw. die Pufferung konfigurieren. Für unsere Flüge-App werden Annotationen benutzt, um die Eigenschaften des Business Objects zu beschreiben. Das BOPF Framework erstellt dann anhand dieser Annotationen das Business Object für uns.

Persistente Datenmodell

Zu Beginn müssen zwei Datenbanktabellen in einer normalisierten Form erstellt werden, damit die Daten unseres Business Objects persistent gespeichert werden können. Diese lassen sich über Eclipse oder über die Transaktion SE11 in der SAP GUI erstellen.
Dabei stellt jedes Feld aus der Datenbanktabelle ein Attribut des Business Objects da. Zusätzlich wird die Struktur /BOBF/S_LIB_ADMIN_DATA eingefügt. Diese Struktur wird später automatisch von BOPF mit administrativen Daten wie dem letzten Änderungszeitpunkt gefüllt.

Aufbau der Tabelle für Flugverbindungen ZPS_VERBINDUNG:

SE11 Tabelle ZPS_VERBINDUNG
Aufbau der Tabelle für Flüge ZPS_FLUG:

SE11 Tabelle ZPS_FLUG
Business Object CDS View erstellen

In Eclipse können anschließend für die beiden Datenbanktabellen sogenannte Business Object CDS Views (im folgenden BO Views genannt) erstellt werden. Durch Assoziationen und @ObjectModel-Annotationen können wir die Hierarchie unserer Entitäten (Flugverbindung und Flug) abbilden. BOPF erkennt durch die Annotation @ObjectModel, dass Business Objects generiert werden sollen. Die genaue Bedeutung der verwendeten Annotationen können Sie hier nachlesen.

In unserem Beispiel bildet ZPS_VERBINDUNG die Root-Entität. Die hierarchisch darunterliegende Entität ZPS_FLUG wird durch eine Assoziation mit der Kardinalität 1..* aus Sicht von ZPS_VERBINDUNG verbunden – also 1 Flugverbindung aus ZPS_VERBINDUNG besitzt n viele Flüge aus ZPS_FLUG.

Die fertige BO View für ZPS_VERBINDUNG sieht wie folgt aus:

CDS Verbindung

Um die darunterliegende Entität für Flüge abzubilden, wird eine weitere BO View benötigt:

CDS Flug

BOPF macht die restliche Arbeit

Durch Angabe der Annotation @ObjectModel.association.type in beiden BO Views weiß BOPF nun, welche Knoten es im Business Object gibt und wie die Hierarchie der Knoten abzubilden ist. Nachdem wir die CDS Views erfolgreich aktiviert haben, zeigt Eclipse links neben der Annotation @ObjectModel.transactionalProcessingEnabled eine Info an, über die wir das neue Business Object öffnen können.

BOPF Infofenster

Damit haben wir nun nicht nur die Datenmodellierung unserer neuen Fiori App abgeschlossen, sondern zusätzlich unser zentrales Business Object generiert und mit Logik zum Erstellen, Lesen, Bearbeiten und Löschen ausgestattet (CRUD-Operatoren) – ohne dabei eine Zeile eigenen ABAP Code zu schreiben.

Ausblick

Im zweiten Teil meiner Anleitung stelle ich Ihnen das Business Object genauer vor und wir werden die CRUD Operatoren unseres Business Objects testen. Anschließend werden wir mit Hilfe einer Consumption CDS View unsere OData Services generieren lassen.

Haben Sie Fragen zur Verwendung von Business Object CDS Views oder BOPF? Gerne helfe ich Ihnen dabei Ihre Fragen zu beantworten. Kontaktieren Sie uns einfach!

Philipp Schurr

Philipp Schurr

Mein Name ist Philipp Schurr und ich bin begeisterter SAP Consultant bei mindsquare. Wie meine Kollegen begeistere ich mich für individuelle Lösungsentwicklungen für Ihr Problem. Ich freue mich auf Ihre Fragen und Anregungen!

Sie haben Fragen? Kontaktieren Sie mich!




Das könnte Sie auch interessieren


Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Angebot anfordern
Preisliste herunterladen
Expert Session
Support