SAP reference books

The book was very clear and exactly what I needed. I have read other work by Espresso Tutorials and have always found it excellent

L. Lachner

SAP-Praxishandbuch ABAP Core Data Services (CDS)

Dieses Buch bietet Ihnen einen Einstieg in die speziell für SAP-HANA entwickelten "ABAP Core Data Services" (ABAP CDS). Von den ersten Schritten in der Eclipse-IDE bis zu komplexen Services für Echtzeitauswertungen im SAP-ERP-System zeigt Ihnen dieses Wer...

10% discount

Get a 10% discount now! Sign up for our newsletter and receive a 10% discount on the digital subscription for our SAP learning platform!

Table of content

  • Vorwort
  • 1 CDS-Views
  • 2 CDS-View-Erweiterungen
  • 3 CDS-Tabellenfunktionen
  • 4 Berechtigungskonzept
  • 5 Fortgeschrittene Techniken
  • 6 Virtuelles Datenmodell
  • 7 CDS-Testumgebung
  • 8 Fazit
  • 9 Anhang
  • A Der Autor
  • B Disclaimer
  • Endnoten

More informationen

Author:

Johannes Gerbershagen

Category:

SAP-Programming

Language:

German

Reading Sample

2.1 CDS-Views mit UNION-Klauseln

Mit der UNION-Klausel bilden Sie Vereinigungsmengen aus mehreren ähnlichen Datenquellen. Im Gegensatz zu den in Abschnitt 1.1.3 aus mehreren Datenbanktabellen dargestellten Verknüpfungen definieren Sie bei Bildung der Vereinigungsmenge keine Assoziations- oder JOIN-Bedingungen. In die Vereinigungsmenge werden nacheinander die Datensätze aus den einzelnen Quellen aufgenommen.

Zur Bildung einer Vereinigungsmenge müssen die Datenquellen mehrere gemeinsame Felder besitzen, und die Feldlisten, die innerhalb des CDS-Views für jede Datenquelle definiert werden, müssen den folgenden Voraussetzungen genügen:

  • Die Anzahl Felder ist in jeder Feldliste identisch.
  • Die Felder müssen auf denselben Positionen identische Dictionary-Typen besitzen.
  • Wenn keine Namensliste (Abschnitt 1.1.3) vorhanden ist, müssen die Felder auf denselben Positionen identische Namen haben.

Position meint in diesem Zusammenhang die Spalte. Spalte 1 entspricht Position 1, Spalte 2 Position 2 etc.

Folgendes Beispiel veranschaulicht dies: Im Demopaket werden die Flughäfen in der Tabelle SAIRPORT abgelegt. Jetzt wollen Sie zusätzlich zu den Feldern Flughafencode, Flughafenname und Zeitzone noch die Flughafengebühren erfassen. Hierfür kopieren Sie die Tabelle SAIRPORT in die Tabelle ZAIRPORT und erweitern die Tabelle ZAIRPORT. Sie haben jetzt zwei Tabellen, die die Flughäfen enthalten. Ein Flughafen kann nur in der Tabelle SAIRPORT, in der Tabelle ZAIRPORT oder in beiden angelegt sein. Für einen Help-View benötigen Sie jetzt den Code und den Namen aller Flughäfen, unabhängig davon, in welcher Tabelle der Flughafen abgelegt ist. Dieser Help-View soll doppelte Einträge nur einmal ausgeben.

Mit Open SQL und ABAP könnten Sie diese Anforderung wie in Listing 2.1 mit zwei SELECT-Anweisungen lösen.

SELECT id, name FROM sairport INTO TABLE @airports.
 
SELECT id, name FROM zairport APPENDING TABLE @airports.
 
SORT airports BY id, name.
DELETE ADJACENT DUPLICATES FROM airports.

Listing 2.1: Vereinigungsmenge aus den Tabellen »SAIRPORT« und »ZAIRPORT« mit Open-SQL-Anweisungen

Die Voraussetzungen zur Bildung der Vereinigungsmenge mit der UNION-Klausel sind erfüllt, wenn nur die Felder ID (Flughafencode) und NAME (Flughafenname) gelesen werden. Daher können Sie diese Anforderung auch mit dem in Listing 2.2 dargestellten CDS-View lösen, der die Vereinigungsmenge aus den Tabellen SAIRPORT und ZAIRPORT bildet.

@AbapCatalog.sqlViewName: 'zun_airport'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Airports'
define view zunion_airports as select from sairport {
    id,
    name
} union select from zairport {
    id,
    name
}

Listing 2.2: Vereinigungsmenge aus den Tabellen »SAIRPORT« und »ZAIRPORT« mit UNION-Klausel in einem CDS-View

Beide Lösungen liefern das gleiche Resultat: In Listing 2.1 liegt dies als interne Tabelle vor, in Listing 2.2 als Datenbank-View.

Wollen Sie die Duplikate aus dem Help-View beibehalten, können Sie die SORT- und die DELETE-ADJACENT-DUPLICATES-Anweisung in Listing 2.1 weglassen. Im CDS-View aus Listing 2.2 fügen Sie wie in Listing 2.3 das Schlüsselwort ALL nach dem Schlüsselwort UNION ein. Duplikate bleiben somit bestehen.

@AbapCatalog.sqlViewName: 'zun_airport'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Airports'
define view zunion_airports as select from sairport {
    id,
    name
} union all select from zairport {
    id,
    name
}

Listing 2.3: Vereinigungsmenge aus den Tabellen »SAIRPORT« und »ZAIRPORT« mit Duplikaten

All contents. Learn more. Discover now.

et.training - Your learning platform for SAP software

  • Access to all learning content1
  • Regular new releases
  • Intelligent search algorithm
  • Innovative reading experience
  • Customized learning paths
  • Certificates & QA tests2

You already have an account?

1 You get access to all learning content. Online trainings, certificates are NOT part of the flat rate.

2 More information on request.