Core Data Services (CDS) ABAP

Extending CDS Views

(C) Brandeis Consulting

Einstieg

Motivation

sowohl im SAP Standard, als auch in Partnerlösungen kommt es häufig zu folgenden Szenarien:

  • Ein Feld ist zwar in der Tabelle vorhanden, aber nicht in der verwendeten View
  • Ein Feld eines Appends soll in eine View mitaufgenommen werden
  • Eine View soll um ein Feld einer anderen Tabelle erweitert werden

Falsche Lösung

  • Die View zu modifizieren
  • die View zu kopieren

Richtige Lösung

  • Modifikationsfreie Erweiterung mit View-Extends
(C) Brandeis Consulting

CDS View Extend anlegen

Syntax

@AbapCatalog.internal.setChange: 'FLDADD_NO_ASS_INFLUENCE'
@AbapCatalog.sqlViewAppendName: 'YC4121EE76312A77'

extend view I_CENTRALPURCHASECONTRACTTP with YB763H63UQWBLTS7PVUOBPFZFZU
  
{ 
  _CntrlPurchaseContractExten.YMM_DISTR_EXECUTED_PDH as YMM_DISTR_EXECUTED_PDH
}

komplexeres Beispiel

@AbapCatalog.sqlViewAppendName: 'YMM_E_CCTRHEKBED'

extend view C_CentralPurchaseContractTP with YMM_E_CntrlPurchContrEkBed
  association [0..1] to YMM_C_PM_EkBed as _Ekbed on _Ekbed.Ekbed = I_CentralPurchaseContractTP.yy_mm_ekbed_pdh
{
  @ObjectModel.readOnly: true
  _Ekbed.Description as EkBedText
}
(C) Brandeis Consulting

Weiteres

  • Woran erkennt man, ob eine View erweitert wurde?
    Bild eines CDS Views mit Hinweis darauf, wie man erkennt, ob dieser erweitert wurde anhand des Mauszeiges auf dem Symbol
  • Was passiert, wenn das hinzugefügte Feld im Standard ausgeliefert wird?
(C) Brandeis Consulting

CDS Metadata Extensions (MDE)

Mit Metadaten Erweiterungen können Annotationen

  1. Getrennt von der CDS View gespeichert werden und
  2. nachträglich hinzugefügt werden.

Das ist eigentlich ganz praktisch, gerade bei großen Views.

Nachteil der Metadata Extensions ist die Unübersichtlichkeit. Da in Eclipse die CDS Views nach Datei Typ gruppiert sind, erkennt man häufig nicht sofort, das zu dem CDS View noch eine MDE existiert. Wenn man dann Annotationen hinzufügt, haben diese vielleicht nicht die gewünschte Wirkung.

Gleiches gilt für die Berechtigungsprüfungen.

(C) Brandeis Consulting