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

927

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 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.


ABAP - CDS Extraktor

Kategorie - ABAP

Wie funktioniert der CDS Extraktor in ABAP und welche Herausforderungen gibt es bei der Entwicklung damit. In diesem Artikel schauen wir uns ein paar Details an.

20.09.2024

ABAP Tools - Arbeiten mit Eclipse (CDS Templates)

Kategorie - ABAP

Wieder das falsche CDS Template bei der Erstellung ausgewählt? Hier ein kleiner Tipp um nachträglich noch den View in ABAP zu korrigieren.

02.07.2024

ABAP Tools - Arbeiten mit Eclipse (CDS Analyse)

Kategorie - ABAP

In der komplexen Welt der CDS Views ist es wichtig, das richtige Tool zur Hand zu haben, um eine Analyse der Strukturen und Datenquellen sicherzustellen.

25.08.2023

CDS - View Entity

Kategorie - ABAP

In diesem Artikel erfährst du mehr über die neuen Core Data Service Entitäten, was sie bringen und was sie von den alten Views unterscheidet.

29.07.2022

CDS - Learnings

Kategorie - ABAP

In diesem Artikel fassen wir noch einmal die gelernte Inhalte zusammen und weisen dir den Weg, für was du in Zukunft die CDS Views brauchst.

10.06.2022