quickcontaxt
Kontakt
BlogHeaderSAPBTP

ABAP RESTful Application Programming - Entwicklung von Geschäftsobjekten

Im zweiten Teil der Blogreihe zum ABAP RESTful Application Programming Model (RAP) haben wir die Architektur des Programmiermodells und seine verschiedenen Schichten näher betrachtet. In den kommenden drei Beiträgen werden wir diese Schichten anhand eines konkreten Beispiels durchlaufen. Dabei zeigen wir Schritt für Schritt, wie ein neues Geschäftsobjekt von Grund auf entwickelt (Teil 3), mit Geschäftslogik versehen (Teil 4) und als OData-Service freigegeben wird, um es anschließend in Fiori-Anwendungen zu verwenden (Teil 5).

Vergleich der Implementierungsansätze

Im ABAP RAP gibt es zwei Ansätze zur Implementierung eines Geschäftsobjekts. Nachfolgend ein kurzer Überblick über die wesentlichen Unterschiede:

Managed-Ansatz:

Unmanaged-Ansatz:

 

CDS-Views: Der Kern des Datenmodells 

In der Beitragsreihe wird das Geschäftsobjekt „Kunde“ im RAP-Framework mithilfe des Managed-Ansatzes entwickelt.

Die Implementierung des Geschäftsobjekts „Kunde“ beginnt mit der Erstellung von CDS-Views , die das zentrale Element des Datenmodells in ABAP RAP darstellen. Sie definieren die Datenstruktur, die später in der Geschäftslogik verwendet wird.

 

Schritt 1: Erstellen einer Interface View 

 

Interface View

Auf Basis einer bestehenden Datenbanktabelle, in der die Kundendaten gespeichert sind, kann ein Interface View erstellt werden. Dabei können nur die für das Geschäftsobjekt relevanten Attribute ausgewählt und in einer semantisch reicheren Form dargestellt werden, indem z. B. sprechende Namen statt technischer Bezeichnungen verwendet werden.

 

Schritt 2: Erstellen einer Projection View

 

Projection View

Basierend auf der zuvor erstellten Interface View wird nun eine Projection View aufgebaut. Diese ermöglicht es, eine Teilmenge der Attribute aus der Interface View für den späteren OData-Service freizugeben. Dadurch können unterschiedliche Services auf Basis derselben Interface View erstellt werden. Zusätzlich bietet die Projection View die Möglichkeit, das Geschäftsobjekt durch UI-Annotationen, Wertehilfen und Berechnungen anzureichern. Dies ermöglicht eine flexible Anpassung der View für verschiedene Nutzungsszenarien.

 

Schritt 3: Erstellen einer Metadata Extension

 

Ausschnitt aus der Metadata Extension

Da Annotationen oft umfangreich werden, ist es ratsam, diese in eine Metadata Extension auszulagern. Dadurch bleibt der CDS-View übersichtlich und die Annotationen können an einem zentralen Ort verwaltet werden. In der Metadata Extension können UI-bezogene Informationen, Wertehilfen und andere Metadaten definiert werden. Eine vollständige Liste aller relevanten Annotationen für das ABAP RESTful Programming Model findet sich hier: Annotationen für ABAP RAP.

 

Schritt 4: Erstellen einer Behavior Definition

 

Mit einer Behavior Definition wird festgelegt, welche Operationen auf dem Geschäftsobjekt erlaubt sind. In diesem Beispiel werden alle Standard-Operationen wie Create, Update und Delete unterstützt. Die Behavior Definition definiert somit das Verhalten des Geschäftsobjekts und stellt sicher, dass die gewünschten CRUD-Operationen umgesetzt werden.

Ausschnitt aus der Behavior Definition

 

Schritt 5: Erstellen einer Projection Behavior Definition

 

Mit der Projection Behavior Definition wird festgelegt, welche Operationen der Behavior Definition für den späteren Service freigegeben werden. Diese Definition ermöglicht es, die Operationen gezielt zu konfigurieren und anzupassen, die im Kontext des Services zur Verfügung stehen. Dadurch kann der Umfang der verfügbaren Funktionen und die Sichtbarkeit der Operationen im Service präzise gesteuert werden.

 

Fazit

In diesem Beitrag wurde veranschaulicht, wie unkompliziert es ist, ein Geschäftsobjekt mit ABAP RAP zu erstellen. Es wurden grundlegende CDS-Views mit entsprechenden CDS-Annotationen erstellt und die Standardoperationen des Geschäftsobjekts definiert. Im nächsten Blogbeitrag liegt der Fokus auf der Implementierung benutzerdefinierter Geschäftslogik.

Bei Fragen zum ABAP RESTful Application Programming Model oder wenn Unterstützung bei komplexeren Geschäftsobjekten benötigt wird, stehen wir gerne zur Verfügung!

David Steinmetz | SAP Developer
Zur Übersicht