This is a test message to test the length of the message box.
Login
|
ABAP CDS Erweiterung
Erstellt von Software-Heroes

CDS - Erweiterung von Views

3398

In diesem Artikel geht es um die Erweiterung von Views, um kundeneigene Felder aufzunehmen oder fehlende Informationen nachzuliefern.

Werbung


Artikel-Update: Seit Release 7.57 (S/4 HANA 2022) ist DEFINE VIEW als obsolet gekennzeichnet, stattdessen solltest du DEFINE VIEW ENTITY verwenden. Diese können an einigen Stellen zu den Beispielen abweichen. Mehr Informationen zu den neuen Views findest du in diesem Artikel.



In diesem Artikel schauen wir uns die Erweiterung von Core Data Services an und wie wir zusätzliche Felder Apps zur Verfügung stellen können. Dabei werden wir grob auf die zwei Erweiterungsmethodiken eingehen, die aktuell genutzt werden.

 

Vorbereitung

Im ersten Schritt schauen wir uns die Erweiterung von CDS Views an und wie wir Zusatzinformationen hinzufügen können. Definieren wir dazu erst einmal einen View, den wir erweitern wollen. Dieser basiert auf dem Basic View für Rabatte:

@AbapCatalog.sqlViewName: 'ZBSCDMODISEXT'
@EndUserText.label: 'CDS Extension'
define view ZBS_C_DmoDiscountExtension
  as select from ZBS_I_DmoDiscount
{
  key PartnerNumber,
  key MaterialNumber,
      DiscountValue,
      _Material.MaterialName,
      _Material.MaterialDescription
}

 

Wie du siehst handelt es sich um einen einfachen View, wir übernehmen die Schlüssel und prägen einige Zusatzinformationen an Texten für das Material aus.

 

EXTEND VIEW

Im zweiten Schritt wollen wir den View "ZBS_C_DmoDiscountExtension" nun erweitern da wir zusätzliche Informationen benötigen, die aktuell in der App fehlen die über diesem View liegt. Gehen wir davon aus, dass wir die View nicht erweitern können, da es sich um eine Standard-View handelt. Dazu legen wir einen neuen Core Data Services an, aber mit dem Muster "Extend View" und wir übernehmen das neue Feld:

@AbapCatalog.sqlViewAppendName: 'ZBSEDMODISEXT'
@EndUserText.label: 'Extension for ZBS_C_DmoDiscountExtension'
extend view ZBS_C_DmoDiscountExtension with ZBS_E_DmoDiscountExtension
{
  _Partner.PartnerName
}

 

Die Annotation "@AbapCatalog.sqlViewAppendName" unterscheidet sich zu den bisher angelegten Views. Hier definieren wir eine Erweiterung des Core Data Service und fürgen den PartnerNamen hinzu. In der SE11 würde das wie folgt aussehen:

 

Das neue Feld wird als Append angelegt und der View damit sauber erweitert. In Eclipse würde man nun am Original-View noch eine entsprechende Markierung erhalten:

 

Im CDS Navigator des Views taucht ebenfalls der entsprechende Eintrag auf und weist auf die Erweiterung hin:

 

Schauen wir uns nun den "Data Preview" für den Core Data Service an, wird automatisch das neue Feld übernommen und steht uns zur Verfügung. Der View wurde entsprechend erweitert, ohne den Original-View ändern zu müssen:

 

Hinweis: Die Erweiterung erhält ebenfalls eine eigene Namenskonvention mit E wie Extension, damit der Extension View vom Datenmodell abgrenzbar bleibt.

 

Assoziation

Die zweite Möglichkeit der Erweiterung ist die Einbindung einer Extension per Assoziation in die verschiedenen Entitäten des Datenmodells, vor allem dann, wenn auch die Datenbanktabelle das neue Feld benötigt. In diesem Erweiterungsszenario sollen zusätzliche Daten in der Applikation gespeichert werden, aber auch gleichzeitig die App die Daten in der UI anzeigen.

Die Erweiterungen werden in den meisten Fällen als "_Extension" eingebaut und zur Verfügung gestellt. Als eigen View bindet es direkt die Datenbanktabelle ein und wird per Assoziation in die entsprechenden Views implementiert: 

 

Die Felder können dann wieder mit einem Extend an die Extension-View gehangen werden. Diese Views haben meist dann auch die entsprechende Annotation "@VDM.viewType: #EXTENSION". Diese Erweiterungsmöglichkeit wird vor allem im SAP Standard eingesetzt, wenn man mit den Key-User-Apps arbeitet.

 

Fazit

Die Erweiterung von CDS Views ist mittlerweile auch Modifikationsfrei möglich und die Ressourcen bleiben sauber im System getrennt. Wenn du weitere Inhalte in einem View brauchst, solltest du vor dem Kopieren an das erweitern denken.


Enthaltene Themen:
CDSCore Data ServiceErweiterungExtend
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.


DDIC der Zukunft (Vergleich)

Kategorie - ABAP

Wie geht es eigentlich mit dem DDIC in Zukunft weiter und können wir schon Heute die neuen Features für uns nutzen? In diesem Teil vergleichen wir die Welt von Heute mit der von Morgen und wo du alle Features findest.

03.07.2026

DDIC der Zukunft (Morgen)

Kategorie - ABAP

Wie geht es eigentlich mit dem DDIC in Zukunft weiter und können wir schon Heute die neuen Features für uns nutzen? In diesem Teil werfen wir ein Blick auf Morgen und wie uns CDS Artefakte bei der Modellierung helfen.

30.06.2026

DDIC der Zukunft (Heute)

Kategorie - ABAP

Wie geht es eigentlich mit dem DDIC in Zukunft weiter und können wir schon Heute die neuen Features für uns nutzen? In diesem Teil schauen wir auf den aktuellen Zustand des Dictionary in ABAP.

26.06.2026

CDS - Typisierte Literale

Kategorie - ABAP

Wie kannst du in einem Core Data Service eigentlich noch typgenauer arbeiten, wenn du ein Element im View erstellst? Dazu schauen wir uns die typisierten Literale an und wie sie dir im Alltag helfen können.

30.01.2026

RAP - CDS Pattern

Kategorie - ABAP

Wie geht eigentlich das CDS Pattern und was hat CDS-only damit zu tun? In diesem Artikel schauen wir auf die Architektur und Nutzung des Patterns.

28.11.2025