Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
17
Einleitung
19
TEIL I Konzepte des ABAP RESTful Application Programming Models
25
1 Einführung in das ABAP RESTful Application Programming Model
27
1.1 Was ist das ABAP RESTful Application Programming Model?
28
1.1.1 Aufgaben des Programmiermodells
28
1.1.2 Der REST-Architekturstil
33
1.1.3 OData
39
1.1.4 Technologische Neuerungen mit SAP S/4HANA
43
1.1.5 Evolution der ABAP-basierten Programmiermodelle
44
1.2 Architektur und Konzepte des ABAP RESTful Application Programming Models
49
1.2.1 RAP-Transaktionsmodell
49
1.2.2 Implementierungstypen
50
1.2.3 Entity Manipulation Language
52
1.2.4 Technischer Kontext einer RAP-Anwendung und RAP-Laufzeitumgebung
53
1.3 Entwicklungsobjekte des ABAP RESTful Application Programming Models
56
1.3.1 Datenmodellierung mit Core Data Services
56
1.3.2 Verhaltensdefinition
57
1.3.3 Verhaltensimplementierung
58
1.3.4 Projektionsschicht
59
1.3.5 Business-Services
60
1.3.6 Zusammenspiel der Artefakte
61
1.4 ABAP Development Tools als Entwicklungswerkzeug
62
1.5 Qualitative Eigenschaften des ABAP RESTful Application Programming Models
63
1.5.1 Evolutionsfähigkeit
64
1.5.2 Entwicklungseffizienz
65
1.5.3 Testbarkeit
66
1.5.4 Trennung zwischen Fachlichkeit und Technik
67
1.6 Verfügbarkeit des ABAP RESTful Application Programming Models
67
1.6.1 SAP BTP, ABAP Environment
68
1.6.2 SAP S/4HANA Cloud, ABAP Environment
69
1.6.3 ABAP-Plattform für SAP S/4HANA on premise
70
1.7 Die Rolle des ABAP RESTful Application Programming Models im ABAP-Cloud-Entwicklungsmodell
71
2 Core Data Services: Datenmodellierung
79
2.1 Was sind Core Data Services?
80
2.2 Aufbau und Syntax von Core Data Services
84
2.2.1 Erstellung eines Basic Interface Views
85
2.2.2 Analyse des Datenmodells
90
2.2.3 CDS Views verwenden
93
2.2.4 Erweiterung des Datenmodells
94
2.3 Assoziationen
99
2.4 Annotationen
104
2.5 Zugriffskontrollen
110
2.6 Erweiterbarkeit von CDS-Entitäten
116
2.6.1 CDS-View-Erweiterungen
116
2.6.2 CDS-Metadatenerweiterungen
121
2.7 Weitere CDS-Funktionalität
124
2.7.1 Virtuelle Elemente
124
2.7.2 CDS Custom Entities
128
2.8 Virtuelles Datenmodell
132
2.9 CDS-Sprachelemente zur Modellierung von Geschäftsobjekten
137
3 Verhaltensdefinition
141
3.1 Was ist eine Verhaltensdefinition?
142
3.1.1 Kontext und Aufbau einer Verhaltensdefinition
142
3.1.2 Syntax einer Verhaltensdefinition
146
3.1.3 Mögliches Verhalten
147
3.2 Verhaltensdefinition in den ABAP Development Tools bearbeiten
155
3.2.1 Eine Verhaltensdefinition anlegen
156
3.2.2 Eine Verhaltensdefinition ändern und aktivieren
159
3.2.3 Eine Verhaltensdefinition suchen und öffnen
161
3.2.4 Verhaltensdefinitionen und Beziehungen dokumentieren
162
3.3 Implementierungstypen
165
3.3.1 Managed Scenario
166
3.3.2 Unmanaged Scenario
169
3.4 Strict-Modus
170
3.5 Entitätsverhaltensdefinition
171
3.6 Behavior Pool definieren
172
3.6.1 Behavior Pool zur Verhaltensdefinition
173
3.6.2 Behavior Pool zur CDS-Entität
173
3.6.3 Behavior Pool zur Implementierungsgruppe
174
3.7 Nummernvergabe
175
3.7.1 Frühe, externe Nummernvergabe
177
3.7.2 Frühe, interne Nummernvergabe
177
3.7.3 Späte Nummernvergabe
179
3.8 Feldeigenschaften
180
3.8.1 Pflichtfelder
181
3.8.2 Schutz vor schreibenden Zugriffen
181
3.8.3 Kombination: Pflichtfeld im Anlagefall, Schreibschutz bei Änderungen
183
3.9 Feld-Mappings
183
3.10 Standardoperationen für eine CDS-Entität
186
3.10.1 Create, Read, Update und Delete
186
3.10.2 Create- und Read-Operation per Assoziation
188
3.11 Spezifische Operationen für eine CDS-Entität
190
3.11.1 Aktionen
190
3.11.2 Funktionen
199
3.11.3 Funktionen zur Feldvorbelegung
202
3.12 Konkurrierende Zugriffe und Sperrverhalten
205
3.12.1 Pessimistisches Sperren
205
3.12.2 Optimistisches Sperren
208
3.13 Interne Geschäftslogik
210
3.13.1 Ermittlungen
211
3.13.2 Validierungen
217
3.13.3 Ermittlungen oder Validierungen über Aktion aufrufen
220
3.14 Berechtigungsprüfungen
222
3.14.1 Authorization-Master
224
3.14.2 Authorization-Dependent
226
3.14.3 Berechtigungsprüfungen delegieren
227
3.15 Draft-Handling
228
3.15.1 Draft-Handling aktivieren
229
3.15.2 Draft-Handling im Geschäftsobjekt-Kompositionsbaum
230
3.15.3 Draft-Lebenszyklus und Draft-Aktionen
232
3.15.4 Seiteneffekte
235
3.16 Ereignisse
243
3.16.1 Manuell ausgelöste Ereignisse
244
3.16.2 Abgeleitete Ereignisse
245
3.17 Übergreifende Konzepte
247
3.17.1 Dynamisches Feature Control
247
3.17.2 Vorprüfungen von Operationen
252
3.17.3 Interne Sichtbarkeit von Operationen
253
4 Entity Manipulation Language: Zugriff auf Geschäftsobjekte
257
4.1 Datentypen
258
4.1.1 Abgeleitete Datentypen
259
4.1.2 Implizite Rückgabeparameter
261
4.2 EML-Operationen
262
4.2.1 READ ENTITIES
263
4.2.2 MODIFY ENTITIES
265
4.2.3 GET PERMISSIONS
271
4.2.4 SET LOCKS
272
4.2.5 COMMIT ENTITIES
273
4.2.6 ROLLBACK ENTITIES
274
4.3 Verwendung von EML außerhalb von Verhaltensimplementierungen
274
4.3.1 Verwendung im Rahmen eines ABAP-Reports
274
4.3.2 Implementierung im Rahmen einer Testklasse
276
4.4 Konkrete Anwendungsfälle
277
5 Verhaltensimplementierung
283
5.1 Business Object Provider API
283
5.2 Laufzeitverhalten des ABAP RESTful Application Programming Models
284
5.2.1 Interaktionsphase und Transaktionspuffer
285
5.2.2 Speichersequenz
287
5.3 Schnittstellen für den Interaktionshandler und den Speicherhandler
288
5.4 Interaktionshandler
289
5.4.1 FOR MODIFY
290
5.4.2 FOR INSTANCE AUTHORIZATION
294
5.4.3 FOR GLOBAL AUTHORIZATION
296
5.4.4 FOR FEATURES
299
5.4.5 FOR GLOBAL FEATURES
302
5.4.6 FOR LOCK
303
5.4.7 FOR READ
305
5.4.8 FOR READ per Assoziation
306
5.4.9 FOR DETERMINE
309
5.4.10 FOR VALIDATE
310
5.4.11 FOR NUMBERING
311
5.4.12 FOR PRECHECK
312
5.5 Speicherhandler
314
5.5.1 FINALIZE
315
5.5.2 CHECK_BEFORE_SAVE
316
5.5.3 ADJUST_NUMBERS
318
5.5.4 SAVE
319
5.5.5 CLEANUP
322
5.5.6 CLEANUP_FINALIZE
323
5.6 Ereignisse
324
5.6.1 Auslösung von Ereignissen
324
5.6.2 Konsumierung von Ereignissen
325
6 Business-Services
331
6.1 Projektionsschicht
332
6.1.1 CDS Projection View
333
6.1.2 Projektionsverhaltensdefinition
334
6.2 Servicedefinition
336
6.3 Service-Binding
337
6.4 Business-Services im SAP Gateway Client testen
341
6.5 UI-Services mit der SAP-Fiori-Elements-Vorschau testen
344
6.6 BO-Interfaces
345
6.6.1 Aufbau eines BO-Interface
345
6.6.2 Verwendung von BO-Interfaces
348
6.6.3 Einsatz von BO-Interfaces als neue BAPIs
348
7 Erweiterbarkeit von Geschäftsobjekten
355
7.1 Einführung in das Erweiterungskonzept
355
7.2 Erweiterungsoptionen
360
7.2.1 Erweiterungen des Datenmodells
360
7.2.2 Erweiterungen des Verhaltens
367
7.2.3 Erweiterbarkeit um zusätzliche CDS-Entitäten
372
7.3 Ein Standardgeschäftsobjekt erweitern
376
7.3.1 Beschreibung des Anwendungsfalls
377
7.3.2 Datenmodell erweitern
380
7.3.3 Verhalten erweitern
390
7.3.4 Abgeleitete Ereignisse
401
8 Anwendungsoberflächen und SAP Fiori Elements
407
8.1 Entwicklungswerkzeuge
408
8.1.1 SAP Business Application Studio
408
8.1.2 Visual Studio Code
411
8.2 SAP-Fiori-Elements-Oberflächen für RAP-Anwendungen
412
8.2.1 Floorplans in SAP Fiori Elements
412
8.2.2 Ausgewählte UI-Annotationen
415
8.2.3 UI-Annotationen in einem CDS View definieren
416
8.2.4 Annotationen mit dem Service Modeler generieren
434
TEIL II Praktische Anwendungsentwicklung mit dem ABAP RESTful Application Programming Model
447
9 Anwendungsfälle
449
9.1 Einsatzgebiete des ABAP RESTful Application Programming Models
449
9.2 Abgrenzung der verschiedenen Implementierungstypen
450
9.3 Entscheidungskriterien zur Auswahl des Implementierungstyps
452
10 Managed Scenario: Entwicklung einer Anwendung mit SAP Fiori Elements
457
10.1 Beschreibung des Anwendungsfalls
458
10.2 Datenmodell aufbauen
458
10.2.1 Datenbanktabellen
459
10.2.2 CDS-Modellierung
463
10.3 Verhaltensdefinitionen erstellen
473
10.3.1 Verhaltensdefinitionen für die Zertifikatsverwaltung anlegen
473
10.3.2 Draft-Handling aktivieren
478
10.4 Business-Service definieren
480
10.4.1 Servicedefinition anlegen
481
10.4.2 Service-Binding erstellen
483
10.5 SAP-Fiori-Elements-Oberfläche erstellen
485
10.6 Anreicherung um eine Ermittlung
493
10.7 Anreicherung um eine Validierung
498
10.8 Anreicherung um eine Aktion
502
10.9 Generierung und Deployment der Anwendung
505
10.10 Datei-Upload
512
11 Managed Scenario mit Unmanaged Save: Bestehende Anwendung integrieren
517
11.1 Beschreibung des Anwendungsfalls
518
11.2 Datenmodell aufbauen
522
11.2.1 Überblick über das logische Datenmodell
523
11.2.2 Datenbanktabellen
526
11.2.3 CDS-Modellierung
529
11.3 Verhaltensdefinition erstellen
535
11.4 Funktion »Bestellung anlegen« realisieren
537
11.4.1 Verwaltete Nummernvergabe deklarieren
538
11.4.2 Feldeigenschaften setzen
538
11.4.3 Behavior Pool anlegen
540
11.4.4 Ermittlungen realisieren
542
11.4.5 Speichersequenz: Anlage per BO-Interface realisieren
549
11.4.6 Validierungen realisieren
559
11.5 Funktion »Bestellung löschen« realisieren
565
11.5.1 Speichersequenz: Löschen per BO-Interface realisieren
566
11.5.2 Validierung realisieren
571
11.6 Business-Services definieren
571
11.6.1 Projektionsschicht für die Anwendung »Eigene Bestellungen« aufsetzen
572
11.6.2 Servicedefinition anlegen
574
11.6.3 Service-Binding anlegen
575
11.7 Berechtigungsprüfungen realisieren
575
11.7.1 Zugriffskontrollen für Lesezugriffe
576
11.7.2 Zugriffskontrollen für Schreibzugriffe
578
11.8 SAP-Fiori-Elements-Oberfläche erstellen
581
11.8.1 Metadatenerweiterung anlegen
581
11.8.2 Generierung und Deployment der Anwendung
584
12 Unmanaged Scenario: Vorhandenen Quellcode wiederverwenden
587
12.1 Beschreibung des Anwendungsfalls
588
12.2 Beschreibung der bestehenden Anwendung
589
12.2.1 Datenbanktabellen
590
12.2.2 Quellcode der bestehenden Anwendung
593
12.3 Datenmodell erweitern
596
12.4 Verhaltensdefinition erstellen
603
12.5 Verhaltensimplementierung erstellen
607
12.5.1 Implementierung der Interaktionsphase
610
12.5.2 Implementierung der Speichersequenz
619
12.6 Business-Service definieren
622
13 Besonderheiten in der Cloud-Umgebung
627
13.1 Technische Grundlagen
628
13.1.1 ABAP for Cloud Development
632
13.1.2 Technische Infrastrukturkomponenten
633
13.1.3 Migration von Bestandscoding
635
13.2 Identity and Access Management
636
13.3 SAP-Fiori-Apps bereitstellen und Berechtigungen vergeben
639
13.3.1 IAM-App und -Anwendungskatalog anlegen
641
13.3.2 IAM-Anwendungsrolle anlegen
643
13.3.3 Integration ins SAP Fiori Launchpad
644
13.4 Business-Services konsumieren
648
Anhang
653
A Literaturverzeichnis
653
Das Autorenteam
655
Index
657