Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Einleitung
15
1 Schritt für Schritt zu Ihren ersten CDS-Views
21
1.1 Datenmodell der Anwendung definieren
22
1.2 Datenmodell der Anwendung implementieren
25
1.2.1 Datenbanktabellen anlegen
27
1.2.2 CDS-View anlegen
31
1.2.3 ABAP-Dictionary-Objekte des CDS-Modells
36
1.2.4 Änderungen am CDS-View vornehmen
39
1.2.5 CDS-View-Stack aufbauen
42
2 Grundlagen der CDS-Datenmodellierung
57
2.1 Überblick über die CDS-Syntax
59
2.2 Schlüsselfelder
63
2.3 Cast-Anweisungen
65
2.4 Case-Anweisungen
67
2.5 CDS-Sitzungsvariablen
68
2.6 Mandantenbehandlung
70
2.7 Union-Views
72
2.7.1 Union-Definitionen
73
2.7.2 Union-Definition mit Namensliste
76
2.7.3 Assoziationen in Union-CDS-Views
77
2.7.4 Union- und Union-All-Logik
78
2.8 Join-Verknüpfungen
80
2.9 SQL-Aggregationsfunktionen
86
2.10 Assoziationen
89
2.10.1 Assoziationsdefinitionen
90
2.10.2 Exponierung von Assoziationen
92
2.10.3 Modellierung von Kompositionsbeziehungen
93
2.10.4 Modellierung von m:n-Beziehungen
97
2.10.5 Verwendung von Assoziationen in CDS-Views
101
2.10.6 Verwendung von Assoziationen in ABAP-Implementierungen
114
2.11 Parameter
115
2.12 Konvertierungsfunktionen für Währungen und Mengeneinheiten
121
2.13 Performance-Aspekte bei der CDS-Datenmodellierung
125
2.13.1 Statische Komplexität
126
2.13.2 Berechnete Felder und Funktionen
129
2.13.3 CDS-Modelle im ABAP-Coding
132
3 CDS-Annotationen
135
3.1 Annotationsdefinitionen
136
3.1.1 Annotationsnamen
139
3.1.2 Typisierungen
142
3.1.3 Wertelisten
143
3.1.4 Default-Werte
144
3.1.5 Geltungsbereiche der Annotationen
145
3.2 Auswirkungen der Annotationen
146
3.3 Propagationslogik für Elementannotationen
149
3.3.1 Grundlagen der Propagationslogik
150
3.3.2 Konsistenzaspekte der Propagationslogik
154
3.4 CDS-Metadatenerweiterungen
156
3.5 Aktive Annotationen
160
4 CDS-Zugriffskontrollen
163
4.1 Grundlagen der CDS-Zugriffskontrollen
164
4.2 Wirkungsweise der CDS-Zugriffskontrollen
167
4.3 Implementierungsmuster für CDS-Zugriffskontrollen
172
4.3.1 Implementierung von CDS-Zugriffskontrollen erben
172
4.3.2 Implementierung von CDS-Zugriffskontrollen mit Pfadausdrücken
177
4.3.3 CDS-Zugriffskontrollen ohne Verwendung von Berechtigungsobjekten implementieren
183
4.3.4 CDS-Zugriffskontrollen für analytische Queries implementieren
185
4.3.5 CDS-Zugriffskontrollen auf Feldebene implementieren
188
4.3.6 Berechtigungsschutz der von SAP ausgelieferten CDS-Modelle verändern
189
4.3.7 Standarddatenselektion blockieren
192
4.3.8 CDS-Zugriffskontrollen von Benutzereingaben entkoppeln
194
4.4 CDS-Zugriffskontrollen testen
196
5 Business-Services
199
5.1 Projektions-Views definieren
200
5.2 Servicedefinitionen erstellen
203
5.3 Service-Binding festlegen
207
5.3.1 SAP-Fiori-Oberflächen auf Basis eines UI-Service generieren
212
5.3.2 Webservices definieren
213
6 Native SAP-HANA-Funktionen in CDS
215
6.1 Implementierung einer CDS-Tabellenfunktion
216
6.2 Verwendung von CDS-Tabellenfunktionen
225
6.3 Performance verbessern und Fehler vermeiden
226
7 CDS-Modelle für Anwendungsdaten
229
7.1 Anwendungsarchitektur in SAP S/4HANA
230
7.2 Feldbezeichner
234
7.2.1 Ermittlung eines Feldbezeichners
235
7.2.2 Wahl der Feldbezeichnerlänge
236
7.3 Semantik von Feldern
238
7.3.1 Mengen und Beträge
239
7.3.2 Aggregationsverhalten
240
7.3.3 Systemzeiten
242
7.3.4 Texte und Sprachen
243
7.3.5 Informationen zum Geschäftsjahr
244
7.4 Fremdschlüsselbeziehungen
245
7.5 Textbeziehungen
250
7.6 Kompositionsbeziehungen
253
7.7 Zeitabhängige Daten
255
8 Das virtuelle Datenmodell in SAP S/4HANA
259
8.1 Warum ein virtuelles Datenmodell?
260
8.2 Stabilität und Freigabe
262
8.2.1 Kompatibilität und Stabilitätskontrakt
264
8.2.2 Lebenszyklus und API-Status einer CDS-Entität
266
8.2.3 Lebenszyklus der Elemente von CDS-Entitäten
270
8.3 Struktur des virtuellen Datenmodells
271
8.3.1 Basic-Interface-Views
271
8.3.2 Composite-Interface-Views
275
8.3.3 Consumption-Views
276
8.3.4 Weitere Typen von CDS-Views
278
8.4 Namensgebung im virtuellen Datenmodell
280
8.4.1 Feldnamen
280
8.4.2 Namen von VDM-Views
282
8.4.3 Namen von Parametern und Assoziationen
284
8.5 Der Basic-Interface-View für den Kundenauftrag
285
8.5.1 View-Annotationen
285
8.5.2 Aufbau des Views
288
8.5.3 Spezialisierung
290
8.5.4 Elementannotationen
291
8.6 Tipps zum Finden von VDM-Views
292
8.6.1 View-Browser
292
8.6.2 Suche in den ABAP Development Tools
294
8.6.3 Suche von Views mit bestimmten Annotationen
297
8.6.4 ABAP-Verwendungsnachweis
298
9 Modellierung analytischer Anwendungen
299
9.1 Analysen in SAP S/4HANA
300
9.2 Analytische Views
301
9.2.1 Erster analytischer Cube-View
301
9.2.2 Testumgebung für analytische Views
303
9.2.3 Analytische Cube-Views
307
9.2.4 Analytische Dimensions-Views
310
9.2.5 Analytisches Modell in der Testumgebung
318
9.2.6 Konsistenz des analytischen Modells
321
9.3 Analytische Queries
323
9.3.1 Definition einer analytischen Query
324
9.3.2 Initiales Layout einer Query
327
9.3.3 Filter, Selektionsoptionen, Parameter
330
9.3.4 Berechnung von Kennzahlen
336
9.3.5 Eingeschränkte Kennzahlen
340
9.3.6 Ausnahmeaggregation
341
9.3.7 Währungen und Umrechnungen
348
9.3.8 Queries auf Dimensions-Views
351
9.4 Analytische Infrastruktur
353
10 Modellierung transaktionaler Anwendungen
357
10.1 Transaktionale Anwendungen
358
10.2 Transaktionale Infrastruktur in SAP S/4HANA
359
10.3 Transaktionale Objektmodelle
363
10.3.1 Objektmodelle definieren
364
10.3.2 Transaktionale Objektmodelle definieren
368
10.3.3 Statische Eigenschaften definieren
374
10.4 Transaktionale Anwendung vervollständigen
381
10.4.1 Sperren setzen und prüfen
381
10.4.2 Datenermittlungen und Datenprüfungen implementieren
385
10.4.3 Aktionen modellieren und implementieren
396
10.4.4 Eigenschaften dynamisch steuern
399
10.4.5 Berechtigungsprüfungen implementieren
402
10.4.6 Berechnete Felder definieren
406
10.4.7 Nutzung des Draft-Konzepts
408
10.5 Transaktionale Servicemodelle
414
10.5.1 Transaktionale Servicemodelle definieren
415
10.5.2 OData-Service definieren
423
10.5.3 Berechnete Felder definieren
426
10.5.4 SAP-Fiori-Anwendung definieren
429
11 Hierarchien in CDS
443
11.1 Grundbegriffe und Typen von Hierarchien
444
11.2 Annotationsbasierte Hierarchien
446
11.2.1 Beispiel einer Vater-Kind-Hierarchie
448
11.2.2 Bestimmung einer Hierarchie
450
11.2.3 Testen einer annotationsbasierten Hierarchie
452
11.3 CDS-Hierarchien
455
11.3.1 Beispieldaten für die Berichtshierarchie
455
11.3.2 CDS-Hierarchie definieren
459
11.3.3 Hierarchieattribute
461
11.3.4 Visualisierung einer Hierarchie
463
11.3.5 Hierarchie mit einem verwaisten Knoten
466
11.3.6 Hierarchie mit mehreren Vaterknoten
467
11.3.7 Hierarchie mit Zyklen
469
11.3.8 Weitere Optionen für die Definition von Hierarchien
471
11.3.9 Hierarchien in ABAP verwenden
471
12 CDS-basierte Suchfunktionen
475
12.1 Wertehilfen
476
12.1.1 Modellierung einer Wertehilfe
476
12.1.2 Verwendung der Wertehilfe
481
12.2 Freitext-Suchfunktionen in OData-Services
488
13 Erweiterungen von CDS-Views
497
13.1 Erweiterungsarten und freigegebene CDS-Views
498
13.1.1 Key-User-Erweiterungen
498
13.1.2 Erweiterungen bei einer On-Premise-Installation
499
13.2 CDS-View-Erweiterungen mit eigenen Feldern
500
13.2.1 Erweiterungsfeld
500
13.2.2 View-Stack
502
13.2.3 Indirekte CDS-View-Erweiterungen
505
13.2.4 Erweiterung des Extension-Include-Views
507
13.2.5 Erweiterungsassoziation
510
13.2.6 Upgrade-Stabilität indirekter CDS-View-Erweiterungen
511
13.3 Einsatz von CDS-View-Erweiterungen
512
13.3.1 Fehlende Erweiterungsassoziation
512
13.3.2 Fehlender Extension-Include-View
513
13.3.3 Fehlende Fremdschlüsselfelder
514
13.3.4 Analytische Query-Views
514
13.3.5 Erweiterung mit Standardfeldern
515
13.3.6 Erweiterung von freigegebenen CDS-Views
517
13.3.7 Erweiterung mit berechneten Feldern
519
14 Testautomatisierung
521
14.1 Grundlagen des Test-Double-Frameworks
522
14.2 Testbeispiel
523
14.3 Implementierung der CDS-Views testen
526
14.3.1 Testdesign erstellen
526
14.3.2 ABAP-Unit-Tests implementieren
528
14.3.3 CDS-Zugriffskontrollen testen
533
14.3.4 CDS-Views mit Konvertierungsfunktionen für Währungen und Mengeneinheiten testen
537
14.3.5 Datenquellen mit Nullwerten testen
540
14.4 ABAP-Logik mit SQL-Zugriffen auf CDS-Views testen
541
14.5 Codegenerierungsfunktionen in den ABAP Development Tools
544
14.5.1 Testklasse anlegen
544
14.5.2 Testklasse ändern
548
15 Problembehandlung
549
15.1 Implementierungsprobleme behandeln
549
15.1.1 Verwendungen nicht spezifizierter Annotationen
550
15.1.2 Konsistenzprüfungen der Frameworks
552
15.1.3 Warnungen und Informationen
555
15.2 Aktivierungsprobleme behandeln
556
15.2.1 Syntaxfehler nach Feldumbenennungen
556
15.2.2 Fehlende SQL-Views in der Datenbank
559
15.2.3 Massenprüfungen und -reparaturen
561
Anhang
565
A CDS-Annotationsreferenz
565
B Die Autoren
575
Index
577