Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Einleitung
17
1 Schritt für Schritt zu Ihren ersten CDS-Views
23
1.1 Datenmodell der Anwendung definieren
24
1.2 Datenmodell der Anwendung implementieren
27
1.2.1 Datenbanktabellen anlegen
29
1.2.2 CDS-View anlegen
33
1.2.3 Änderungen am CDS-View vornehmen
39
1.2.4 CDS-View-Stack aufbauen
43
2 Grundlagen der CDS-Datenmodellierung
59
2.1 Überblick über die CDS-Modelle
60
2.2 Überblick über die CDS-View-Syntax
65
2.3 Schlüsselfelder
68
2.4 Cast-Anweisungen
70
2.5 Typisierte Literale
72
2.6 CDS-Simple-Types
74
2.7 Case-Anweisungen
76
2.8 CDS-Sitzungsvariablen
78
2.9 Mandantenbehandlung
79
2.10 Select-Distinct-Anweisungen
81
2.11 Union-Views
82
2.11.1 Union-Definitionen
82
2.11.2 Union- und Union-All-Logik
87
2.12 Intersect- und Except-Anweisungen
89
2.13 Join-Verknüpfungen
91
2.14 SQL-Aggregationsfunktionen
97
2.15 Projektionsfelder
100
2.16 Parameter
102
2.17 Referenzfelder
108
2.18 Konvertierungsfunktionen für Währungen und Mengeneinheiten
110
2.19 CDS-Provider-Kontrakte
114
2.20 Entitätspufferdefinitionen
116
3 CDS-Assoziationen
119
3.1 Assoziationsdefinitionen
120
3.2 Exponierung von Assoziationen
123
3.3 Modellierung von Kompositionsbeziehungen
124
3.4 Modellierung von m:n-Beziehungen
127
3.5 Projizierte Assoziationen
130
3.6 Verwendung von Assoziationen in CDS-Views
131
3.6.1 Pfadausdrücke definieren
132
3.6.2 Implizite Join-Verknüpfungen
134
3.6.3 Kardinalitätsänderungen durch Pfadausdrücke
137
3.6.4 Berechnete Felder in Assoziationsdefinitionen
141
3.7 Verwendung von Assoziationen in ABAPImplementierungen
143
4 CDS-Annotationen
145
4.1 Annotationsdefinitionen
146
4.1.1 Syntaxübersicht
147
4.1.2 Annotationsnamen
151
4.1.3 Typisierungen und Werte von Annotationen
155
4.1.4 Wertelisten von Annotationen
155
4.1.5 Default-Werte der Annotationen
156
4.1.6 Geltungsbereiche der Annotationen
157
4.2 Auswirkungen der Annotationen
159
4.3 Propagationslogik für Annotationen
161
4.3.1 Propagationslogik innerhalb der CDS-Simple-Type-Hierarchien
161
4.3.2 Propagationslogik von Elementannotationen
163
4.3.3 Konsistenzaspekte der Propagationslogik
169
4.4 CDS-Metadatenerweiterungen
172
4.5 Aktive Annotationen
176
5 CDS-Zugriffskontrollen
179
5.1 Grundlagen der CDS-Zugriffskontrollen
180
5.2 Wirkungsweise der CDS-Zugriffskontrollen
185
5.3 Implementierungsmuster für CDS-Zugriffskontrollen
190
5.3.1 Implementierung von CDS-Zugriffskontrollen mit Pfadausdrücken
191
5.3.2 Implementierung von CDS-Zugriffskontrollen erben
200
5.3.3 CDS-Zugriffskontrollen ohne Verwendung von Berechtigungsobjekten implementieren
210
5.3.4 CDS-Zugriffskontrollen für analytische Queries implementieren
216
5.3.5 CDS-Zugriffskontrollen für Modelle, die das transaktionale Prozessieren von Daten unterstützen
218
5.3.6 CDS-Zugriffskontrollen auf Feldebene implementieren
221
5.3.7 Berechtigungsschutz der von SAP ausgelieferten CDS-Modelle verändern
222
5.3.8 Standarddatenselektion blockieren
225
5.3.9 CDS-Zugriffskontrollen von Benutzereingaben entkoppeln
228
5.3.10 Indirekte Verknüpfung von CDS-Feldern mit Feldern der Berechtigungsobjekte
229
5.4 CDS-Zugriffskontrollen testen
230
6 Business-Services
235
6.1 Projektions-Views definieren
236
6.2 Servicedefinitionen erstellen
241
6.3 Service-Bindings festlegen
247
6.3.1 OData-UI-Services
247
6.3.2 OData-Web-API-Services
253
6.3.3 InA-UI-Services
254
6.3.4 SQL-Web-API-Services
257
6.4 Business-Services testen
257
6.4.1 OData-Service-URLs aufrufen
257
6.4.2 SAP-Fiori-Oberflächen auf Basis eines UI-OData-Service generieren
258
7 Native SAP-HANA-Funktionen in CDS
261
7.1 Implementierung einer CDS-Tabellenfunktion
262
7.2 Anwendungsszenarien
271
7.3 Performance verbessern und Fehler vermeiden
272
8 CDS-Modelle für Anwendungsdaten
275
8.1 Anwendungsarchitektur in SAP S/4HANA
276
8.2 Feldbezeichner
280
8.2.1 Ermittlung eines Feldbezeichners
281
8.2.2 Wahl der Feldbezeichnerlänge
282
8.3 Semantik von Feldern
284
8.3.1 Mengen und Beträge
285
8.3.2 Aggregationsverhalten
286
8.3.3 Systemzeiten
288
8.3.4 Texte und Sprachen
289
8.3.5 Informationen zum Geschäftsjahr
290
8.4 Fremdschlüsselbeziehungen
291
8.5 Textbeziehungen
297
8.6 Kompositionsbeziehungen
299
8.7 Zeitabhängige Daten
302
9 Das virtuelle Datenmodell von SAP S/4HANA
305
9.1 Warum ein virtuelles Datenmodell?
307
9.2 SAP-Objekttypen und SAP-Objektknotentypen
308
9.3 Kategorien von CDS-Entitäten im VDM
311
9.3.1 Basic-Interface-Views
312
9.3.2 Composite-Interface-Views
313
9.3.3 Consumption-Views
315
9.3.4 Weitere Typen von CDS-Views
316
9.4 Namensgebung im virtuellen Datenmodell
318
9.5 Der Basic-Interface-View für den Kundenauftrag
321
9.5.1 View-Annotationen
321
9.5.2 Aufbau des Views
325
9.5.3 Spezialisierung
327
9.5.4 Elementannotationen
328
9.6 Tipps zum Finden von VDM-Views
329
9.6.1 SAP Business Accelerator Hub und View-Browser-App
329
9.6.2 Suche in den ABAP Development Tools
333
9.6.3 Suche von Views mit bestimmten Annotationen
334
9.6.4 ABAP-Verwendungsnachweis
335
10 Modellierung analytischer Anwendungen
337
10.1 Analysen in SAP S/4HANA
338
10.2 Analytische Views
339
10.2.1 Erster analytischer Cube-View
339
10.2.2 Testumgebung für analytische Views
341
10.2.3 Analytische Cube-Views
345
10.2.4 Analytische Dimensions-Views
349
10.2.5 Analytisches Modell in der Testumgebung
356
10.2.6 Konsistenz des analytischen Modells
358
10.3 Analytische Queries
361
10.3.1 Definition einer analytischen Query
362
10.3.2 Initiales Layout einer Query
365
10.3.3 Filter, Selektionsoptionen, Parameter
369
10.3.4 Berechnung von Kennzahlen
375
10.3.5 Eingeschränkte Kennzahlen
379
10.3.6 Ausnahmeaggregation
382
10.3.7 Währungen und Umrechnungen
389
10.3.8 Queries auf Dimensions-Views
393
10.4 Analytische Infrastruktur
395
11 Modellierung transaktionaler Anwendungen
399
11.1 Transaktionale Anwendungen
400
11.2 Transaktionale Infrastruktur in SAP S/4HANA
402
11.3 Transaktionale Objektmodelle
405
11.3.1 Objektmodelle
406
11.3.2 CDS-Zugriffkontrolle
410
11.4 Verhaltensdefinitionen
411
11.4.1 Verhaltensdefinition anlegen
411
11.4.2 Verhaltenspool und Handler-Implementierung
422
11.4.3 Verwendung über EML
426
11.4.4 Statische Feldkontrolle
427
11.4.5 Nummernvergabe
429
11.4.6 Exklusive Sperren
435
11.4.7 Berechtigungsprüfungen
439
11.4.8 Berechtigungskontexte und privilegierter Zugriff
444
11.4.9 Assoziationen
447
11.4.10 Aktionen
451
11.4.11 Funktionen
466
11.4.12 Ermittlungen und Validierungen
473
11.4.13 Dynamische Feature-Kontrolle
483
11.4.14 Mappings
489
11.4.15 Berechnete Felder
491
11.4.16 Prechecks
493
11.4.17 HTTP-ETags
495
11.4.18 Draft
497
11.4.19 Seiteneffekte
507
11.4.20 Änderungsbelege
511
11.4.21 Events
513
11.5 Transaktionale Projektionsobjektmodelle
517
11.5.1 Projektionsobjektmodelle
518
11.5.2 CDS-Zugriffskontrolle
521
11.5.3 Denormalisierte (sprachunabhängige) Texte
522
11.5.4 Lokalisierte Elemente
523
11.5.5 Kalkulierte und virtuelle Felder
524
11.6 Interface-Verhaltensdefinitionen
528
11.6.1 Interface-Verhaltensdefinition anlegen
529
11.6.2 Statische Feldkontrolle
531
11.6.3 Operationen
532
11.6.4 Draft, ETag und Seiteneffekte
533
11.6.5 Events
534
11.6.6 Verwendung über EML
534
11.6.7 Freigabe für die Verwendung
535
11.7 Projektionsverhaltensdefinitionen
536
11.7.1 Projektionsverhaltensdefinition anlegen
536
11.7.2 Aktionen und Funktionen
538
11.7.3 Prechecks
539
11.7.4 Augmentierung
540
11.7.5 Seiteneffekte
543
11.7.6 Events
545
11.7.7 Verwendung über EML
545
11.8 Laufzeitorchestrierung
545
11.8.1 Orchestrierung der Interaktionsphase
546
11.8.2 Orchestrierung der Save-Phase
547
11.8.3 Überblick über die Laufzeitkomponenten
549
11.8.4 Verwendung über OData
551
11.9 SAP Fiori und Verwendung über OData
551
11.9.1 OData-Service für die Verwendung als Web-API
551
11.9.2 OData-Service für die Verwendung in der Benutzeroberfläche
553
11.10 SAP Event Mesh und lokale Event-Handler
564
11.10.1 Lokale Event-Handler
565
11.10.2 SAP Event Mesh
567
12 Hierarchien in CDS
569
12.1 Grundbegriffe und Typen von Hierarchien
570
12.2 Annotationsbasierte Vater-Kind-Hierarchien
572
12.2.1 Beispiel einer Vater-Kind-Hierarchie
574
12.2.2 Bestimmung einer Hierarchie
577
12.2.3 Testen einer annotationsbasierten Hierarchie
578
12.3 CDS-Hierarchien
581
12.3.1 Beispieldaten für die Berichtshierarchie
581
12.3.2 CDS-Hierarchie definieren
585
12.3.3 Hierarchieattribute
587
12.3.4 Visualisierung einer Hierarchie
589
12.3.5 Hierarchie mit einem verwaisten Knoten
592
12.3.6 Hierarchie mit mehreren Vaterknoten
593
12.3.7 Hierarchie mit Zyklen
595
12.3.8 Weitere Optionen für die Definition von Hierarchien
597
12.3.9 CDS-Hierarchien in ABAP SQL
598
12.3.10 OData Service für CDS-Hierarchien
600
13 CDS-basierte Suchfunktionen
605
13.1 Wertehilfen
606
13.1.1 Elementare Wertehilfen modellieren
606
13.1.2 Wertehilfen in CDS-Modelle integrieren
610
13.1.3 Sammelsuchhilfen modellieren
613
13.1.4 Wertehilfen in OData-Services exponieren
615
13.1.5 Wertehilfen verwenden
616
13.2 Freitext-Suchfunktionen in OData-Services
629
13.3 Enterprise-Search-Funktion
637
13.3.1 Enterprise-Search-Modelle definieren
638
13.3.2 Enterprise-Search-Modelle von SAP anpassen
640
14 Lebenszyklus und Stabilität von Core Data Services
643
14.1 Stabilitätskontrakte
644
14.2 Lebenszyklus von Entwicklungsobjekten
649
14.3 Abkündigung von Entwicklungsobjekten
651
14.4 Verwendung von CDS-Modellen und unterstützte Funktionen
654
15 Erweiterungen von CDS-Views und weiteren Entitäten
659
15.1 Produkte und Sprachversionen
660
15.2 Stabile CDS-Erweiterungen
662
15.2.1 Stabile Erweiterungen von CDS-Views
664
15.2.2 Beispiel für stabile Erweiterungspunkte
665
15.2.3 Erweiterung des Beispiels
670
15.2.4 CDS-Erweiterungen in Produktvarianten
675
15.3 Erweiterungen von transaktionalen Modellen
677
15.3.1 Felder an einer Entität hinzufügen
677
15.3.2 Anwendungslogik ergänzen
681
15.3.3 Aktions- und Funktionsparameter und -ergebnis erweitern
682
15.3.4 Verhalten erweitern
683
15.3.5 Neue Kindentität hinzufügen
685
16 Testautomatisierung
693
16.1 Selektionslogik der Anwendungen testen
694
16.1.1 Grundlagen des Test-Double-Frameworks
694
16.1.2 Übersicht über das Testbeispiel
696
16.1.3 Implementierung der CDS-Views testen
699
16.1.4 ABAP-Logik mit SQL-Zugriffen auf CDS-Views testen
714
16.1.5 Codegenerierungsfunktionen in den ABAP Development Tools
717
16.2 Transaktionale Applikationslogik testen
721
16.2.1 Verhaltens-Handler testen
722
16.2.2 Events und Event-Payloads testen
726
16.2.3 Lokale Event-Handler testen
732
16.2.4 Tests über die EML-Schnittstelle
734
17 Problembehandlung
735
17.1 Performance-Aspekte
736
17.1.1 Statische View-Komplexität
736
17.1.2 Berechnete Felder
740
17.1.3 CDS-Modelle im ABAP-Coding
743
17.1.4 Performance-Tests
744
17.1.5 Analysewerkzeuge
744
17.2 Mögliche Fallstricke
753
17.2.1 Nullwerte
754
17.2.2 Datentypen
757
17.2.3 Dezimalstellen-Verschiebungslogik für Beträge
763
17.3 CDS-Implementierungsprobleme behandeln
765
17.3.1 Syntaxfehler
765
17.3.2 Konsistenzprüfungen der Frameworks
769
17.4 CDS-Aktivierungsprobleme behandeln
774
17.4.1 Online-Aktivierung
775
17.4.2 Massenprüfungen und -reparaturen
777
17.5 Anwendungen des ABAP RESTful Application Programming Model analysieren
779
Anhang
783
A CDS-Annotationsreferenz
783
B Migration vom ABAP Programming Model for SAP Fiori zum ABAP RESTful Application Programming Model
797
Die Autoren
805
Index
807