This is a test message to test the length of the message box.
Login
|

017: Core Data Service [Basics] - Creation and Structure

291

In dieser Folge beginnen wir mit den Grundlagen der Entwicklung von Core Data Services, dabei werden wir zu einer ersten Tabelle einen CDS View erstellen und uns die Struktur im Detail anschauen.

Werbung


Setup

Core Data Service sind die Grundlage der modernen Entwicklung und damit ein wichtiger Skill für jeden ABAP Entwickler. Damit starten wir eine Serie mit kurzen Videos, die die aktuellen Themen ergänzen soll. Dazu findest du im YouTube Verzeichnis einen neuen Ordner für Core Data Services. Im Moment ist dort eine Tabelle angelegt, sowie eine ausführbare Klasse, die Daten zur Verfügung stellt. In der Klasse findest du pro Tabelle jeweils eine Methode die Daten generiert. Die Tabelle ist eine Kopftabelle, die einige Informationen zu einem Beleg enthält, wie die ID, eine Beschreibung, den Partner, eine Anlagedatum und einen Sachbearbeiter. Schauen wir uns den Inhalt der Tabelle mit F8 an, dann sehen wir bereits die eingefügten Testdaten.

 

Anlage

Für die Anlage von Core Data Services gibt es normalerweise mehrere Varianten, schauen wir uns dazu einmal zwei Varianten an. Haben wir zum Beispiel noch keinen Core Data Service unter dem Paket, dann können wir auf das Kontextmenü zugreifen und über den Unterpunkt "New" ein neues Objekt anlegen. Da uns hier nun alle Objekte zur Verfügung stehen, müssen wir nach "Data Defintion" suchen.

Der zweite Weg ist die Anlage über ein entsprechend geeignetes Objekt. Zum Beispiel wollen wir für die Tabelle einen Core Data Service anlegen, dann können wir auch über die Tabelle im Repository Tree gehen. Im Kontextmenü finden wir direkt den Eintrag. Mit einer Referenz zu arbeiten hat einen Vorteil, da direkt das Referenzobjekt für den neuen Core Data Service vorbelegt wird.

Nun könnnen wir dem Service einen Namen geben. Die Neuerung bei CDS Views ist, dass wir hier mit Groß- und Kleinschreibung arbeiten können. Dies ist auch Best-Practice bei der Vergabe der Namen. In diesem Fall steht das B im Namen für den Typen des Core Data Service. Hier wollen wir einen Basic Views angelegen, der direkt über der Tabelle liegt. Nach der Auswahl des Transports erfolgt die Auswahl des Templates, also welche Art von Core Data Service wollen wir anlegen. In diesem Fall stehen uns verschiedene Templates zur Verfügung. "VIEW" wird vor allem noch auf älteren Releases eingesetzt ist aber auf neuen Versionen obsolet. Daher solltest du hier vor allem auf die "VIEW ENTITY" setzen und die alte Version vergessen, sobald du auf einem halbwegs aktuellen System bist.

 

Struktur

Nach der Anlage erhalten wir einen ersten Vorschlag vom System und können uns damit den Aufbau eines Core Data Service anschauen. Hier können wir auf den ersten Blick drei Bestandteile des Views identifizieren:

  • Header Annotationen - Annotationen beginnen mit dem @-Zeichen und sind vor allem zur Anreicherung des Datenmodells und zur Beschreibung gedacht. Da wir uns über der Definition des Views befinden, handelt es sich um den Header Bereich.
  • View Definition - In diesem Bereich findest du die Definition des Views. Hier wird zum Beispiel die Selektion der Tabelle dargestellt, es können aber auch Beziehungen innerhalb des Datenmodells für Assoziationen und Compositionen dargestellt werden.
  • Feldliste - Innerhalb der geschweiften Klammern befinden wir uns in der Feldliste. Hier können wir mit den verschiedenen Feldern arbeiten, Funktionen ausführen oder neue Felder anlegen. In diesem Bereich können ebenfalls Annotationen genutzt werden, die dann nicht nur für den View gelten, sondern für die einzelnen Felder innerhalb des Views.

 

Räumen wir dazu erst einmal den View auf und entfernen Annotationen die wir erst einmal für die Übersichtlichkeit nicht benötigen. Mit Shift + F1 können wir den Pretty Printer ausführen und die Felder und Annotationen formatieren lassen, um so ein einheitliches Aussehen zu erhalten.

 

Alias

Das System schlägt uns bereits neue Feldnamen für den Core Data Service vor, hier ist eine gute Empfehlung ohne, Unterstriche im Datenmodell zu arbeiten und Groß- und Kleinschreibung zu verwenden. Hier im Basis View, wollen wir die Daten der Tabelle im Modell bereitstellen und vergeben dazu sprechende Langnamen, die auch möglichst eindeutig im Modell sind. Diese Namen bilden dann die Grundlage im gesamten Virtuellen Datenmodell.

Auch auf Ebene der Tabellen und Beziehungen können wir einen Alias vergeben. Damit können wir dann innerhalb des Views die Felder der Tabelle ansprechen. Auf Ebene der Tabelle ist das eigentlich nur dann nötig, wenn wir per Join mehr als eine Grundtabelle zur Verfügung haben.

 

Annotation

Auf Ebene des Headers fügen wir noch eine Annotation für das virtuelle Datenmodell ein. Dazu beginnen wir mit dem ersten Teil der Annotation und können uns dann aus der Wertehilfe den passenden Typen aussuchen. Mit STRG + SPACE rufen wir den Content Assist auf und erhalten alle Konstanten, die wir an dieser Stelle einfügen können. Da wir noch auf der Basisebene sind, übernehmen wir die Konstante für "BASIC".

Über die Vorwärtsnavigation gelangen wir in die Definition der Annotationen und können die verfügbaren Annotationen prüfen. Hier finden sich auch weitere Eigenschaften wie: Freigabestatus, Scope, Datentyp, Defaultwerte und verfügbare Konstanten.

Möchtest du dir einen Überblick über alle verfügbaren Annotationen im System machen, kannst du das über die allgemeine Suche machen. Dazu suchen wir nach allen Objekten und grenzen die Suche auf den Typen DDLA ein. In diesem Beispiel erhalten wir 49 Ergebnisse und können zum Beispiel zu UI navigieren. Hier finden wir alle Annotationen, die etwas mit Fiori Elements zu tun haben.

 

Data Preview

Um nun die Daten nach der Modellierung sehen zu können, können wir per F8 den Data Preview im Core Data Service starten. Im Standard erhalten wir erst einmal alle verfügbaren Daten. Die Überschriften entsprechen bereits den neuen Feldnamen, daher ist der Inhalt der Spalte leichter identifizierbar. Wollen wir die Menge eingrenzen, können wir per Rechts-Klick auf ein Element den Quick Filter befüllen. Damit werden die Daten auf den entsprechenden Partner gefiltert und angezeigt. Im Nachgang können wir den Filter noch zusätzlich anpassen.

 

Zusammenfassung

Damit wäre unser erster Core Data Service angelegt und die Grundbestandteile erklärt ... Danke fürs Zuhören und bis zum nächsten Mal.

 

YouTube
Video


Enthaltene Themen:
YouTubeSkriptCore Data Service
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Dienstag und Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


043: Modern, solid and testable ABAP Code (Part 4)

Kategorie - YouTube

Die digitale Version des betterCode Vortrags zum Thema moderner und testbarer ABAP Code. Dabei schauen wir uns das Thema Software Architektur an und geben Tipps für die Nutzung von ABAP Unit.

25.05.2026

042: Modern, solid and testable ABAP Code (Part 3)

Kategorie - YouTube

Die digitale Version des betterCode Vortrags zum Thema moderner und testbarer ABAP Code. Dabei schauen wir uns das Thema Software Architektur an und geben Tipps für die Nutzung von ABAP Unit.

18.05.2026

041: Modern, solid and testable ABAP Code (Part 2)

Kategorie - YouTube

Die digitale Version des betterCode Vortrags zum Thema moderner und testbarer ABAP Code. Dabei schauen wir uns das Thema Software Architektur an und geben Tipps für die Nutzung von ABAP Unit.

11.05.2026

040: Modern, solid and testable ABAP Code (Part 1)

Kategorie - YouTube

Die digitale Version des betterCode Vortrags zum Thema moderner und testbarer ABAP Code. Dabei schauen wir uns das Thema Software Architektur an und geben Tipps für die Nutzung von ABAP Unit.

04.05.2026

038: Recycling-Heroes - Annotations (Document)

Kategorie - YouTube

In dieser Folge schauen wir uns die Annotationen der Dokumenten App an und wie wir diese sehr einfach anlegen können. Dazu erweitern wir die App und fixen ein Problem mit dem Schlüssel.

30.03.2026