ABAP RAP

ABAP RESTful Application Programming Model

Einleitung

(C) Brandeis Consulting📁

Webanwendungen

(C) Brandeis Consulting📁

Webanwendungen

(C) Brandeis Consulting📁

Services

(C) Brandeis Consulting📁

Services

(C) Brandeis Consulting📁

Evolution der Programmiermodelle

Darstellung der verschiedenen Versionen und Ansätze der OData Entwicklung mit ABAP von Begin bis heute

(C) Brandeis Consulting📁

Ziele von RAP

  • Einfache Entwicklung mit Fokus auf der Anwendungslogik, Stichwort "Entwicklungseffizienz"
  • Alle Standardfeatures sollen eingebaut sein oder wenig manuellen Aufwand verursachen:
    • CRUD Operatoren
    • Oberflächen
    • Sperren
    • Berechtigungsprüfungen
    • DRAFT Handling
    • Nummernvergabe
  • Klarer Programmfluss, was wann passiert
  • Integration mit DDic und CDS
  • Erweiterbarkeit
  • Nutzung der SAP Technologien
    • SAP HANA
    • FIORI
    • BTP-Enabled
(C) Brandeis Consulting📁

REST

Zustandslose (Web-)Anwendungen. In einer Anfrage oder Antwort sind jeweils alle relevanten Informationen für Server bzw. Client enthalten.

Der Server speichert keine Session, wie das z.B. bei WebDynpro der Fall war

Damit kann man sich auch jede Navigation im Browser als Favorit speichern, da alle Infos in der URL stecken.

(C) Brandeis Consulting📁

OData

Für die Übertragung von Anwendungsdaten werden von RAP Services definiert, die das OData Protokoll nutzen.

Wir haben als RAP Entwickler eigentlich nichts direkt mit dem OData Protokoll zu tun!

OData kann man sich als SQL für REST vorstellen

OData liefert

  • Metadaten
    • Welche Objekttypen gibt es?
    • Welche Attribute haben diese?
    • Wie können wir zwischen den Objekttypen navigieren?
  • Anwendungsdaten - Lassen sich gezielt per URL abfragen
    • Listen von Objektinstanzen - alle oder mit Filter/Suche
    • Einzelne Objektinstanzen - über Schlüssel
  • Annotationen - Zusatzinformationen für die Darstellung
    • Welche Felder sind Filterfelder?
    • Wo kommt die Wertehilfe her?
(C) Brandeis Consulting📁

Fiori Elements

Aus dem Backend mit Annotationen steuerbare Oberflächen. Entweder mit wenigen Floorplans in eigenen Anwendungen, wie im RAP. Oder als Komponenten in von Hand gebauten UI5 Anwendungen.

  • Generiert UIs auf Basis von OData-Services und Metadaten (z. B. CDS-Annotationen).
  • Fokus auf Wiederverwendbarkeit und konsistentes UX-Design.

Typische Floorplans:

List Report

List Report

Object Page

List Report

(C) Brandeis Consulting📁

Architekturübersicht

(C) Brandeis Consulting📁

Was ist ein Business Object (BO)

Business Object

  • Definition:
    • Ein Business Object (BO) ist eine zentrale Einheit im SAP Restful ABAP Programming Model (RAP), die ein Geschäftskonzept oder einen Prozess (z. B. Verkaufsauftrag, Anfrage) abbildet.
  • Bestandteile:
    • Datenmodell: Struktur der Daten, z. B. Tabellen und Views.
    • Verhalten (Behavior): Geschäftslogik, z. B. Aktionen, Validierungen und Berechtigungsprüfungen.
    • Service: Bindet das BO an ein Protokoll und definiert welche Teile des BO freigegeben werden
    • Transaktionsmanagement: Verwaltung von Änderungen im Kontext des SAP LUW.
(C) Brandeis Consulting📁

Namenskonvention für mehrschichtige CDS Views

Im SAP RAP werden CDS Views und Behavior Definitions wie im virtuellen Datenmodell in verschiedene Layer unterteilt, um eine klare Trennung von Verantwortlichkeiten und eine bessere Wartbarkeit zu gewährleisten:

Untereste Ebene: I_ Interface-View

Der I-View liefert die Daten des Geschäftsobjekt für unterschiedliche Frameworks. Aufgaben dieser Schicht:

  • Umbenennung der Felder
  • Allgemeingültige Annotationen, z.B. Währungen, Semantics, ...

Mittlerer Ebene: R_ Reuse-View

  • RAP-spezifisch, Datenmodellierung des Business Objekt, Gesamtmenge aller Daten

Oberste Ebene: C_ Consumption-View

Der C-View ist eine spezialisierte Projektion des Geschäftsobjektes für einen Anwendungsfall.

In unseren Übungen beschränken wir uns zunächst auf eine Schicht, damit alles übersichtlicher bleibt.
(C) Brandeis Consulting📁

Namenskonvention in diesem Training

SAP Dokumentation zu RAP.

Ein guter <Name>

Die Suffix _R,_M,_D,_U,_C, aus der SAP Doku sind in der echten Welt nicht notwendig, da hier die Szenarien (read-only, managed, ddraft, unmanaged, service consumption) auf den gleichen Tabellen implementiert wurden.

Falls Ihr einen Präfix-Namensraum verwendet, diesen statt dem führenden Z verwenden.

(C) Brandeis Consulting📁

Namenskonventionen - Objekttypen

Objekttyp Konvention Beschreibung
DB-Tabelle Z_<Name> Anwendungstabelle
DB-Tabelle Z_<Name>_D Drafttabelle
CDS View ZI_<Name> Interface View
CDS View ZR_<Name> Reuse-View
CDS View ZC_<Name> Projection View für den Consumption layer
Behaviour Definition Wie der zugehörige CDS View
Service Defintion Z_<Name>
Service Binding ZUI_<Name> Für UI Services
Service Binding ZAPI_<Name> Für API Services
ABAP Klasse ZBP_<Name> Klasse für den Behaviour Pool
Lokale Klasse LHC_ Lokale Handler Klasse
Lokale Klasse LSC_ Lokale Saver Klasse
(C) Brandeis Consulting📁

Links

(C) Brandeis Consulting📁