Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Einleitung
17
Einführung
25
TEIL I Einführung
25
1 Einführung in die Fullstack-Entwicklung
27
1.1 Was ist ein Fullstack-Entwickler?
28
1.2 SAP-Programmiermodelle
33
1.2.1 ABAP-Programmiermodell für SAP Fiori
34
1.2.2 ABAP RESTful Application Programming Model
37
1.2.3 SAP Cloud Application Programming Model
45
1.3 HTTP-Grundlagen
52
1.4 Zusammenfassung
56
2 Einführung in SAPUI5 und SAP Fiori
57
2.1 SAPUI5 versus SAP Fiori
57
2.2 SAP Fiori Launchpad
67
2.3 SAP Fiori Design Guidelines
73
2.4 Entwicklungswerkzeuge
74
2.4.1 SAP Business Application Studio
75
2.4.2 Visual Studio Code
79
2.5 Zusammenfassung
81
3 Einführung in OData
83
3.1 Einführung
84
3.1.1 Grundlagen von OData
85
3.1.2 CRUDQ-Methoden
89
3.1.3 OData-Query-Optionen
97
3.2 OData-Services entwickeln
102
3.2.1 SAP-Gateway-Service-Builder-Projekte
103
3.2.2 ABAP RESTful Application Programming Model
111
3.3 OData testen
116
3.3.1 Teststrategie
117
3.3.2 Testen von OData-Services mit SAP Gateway Client
120
3.3.3 Testen von OData-Services mit dem Postman-REST-Client
125
3.4 Zusammenfassung
131
4 Einführung in CDS
133
4.1 Entwicklung von Core Data Services
134
4.1.1 Einfache CDS-Views
135
4.1.2 Joins und Projektionen
139
4.1.3 Berechnete Felder
141
4.1.4 Aggregationsfunktionen
143
4.1.5 Kaskadierende Views
145
4.2 Assoziationen und Navigationseigenschaften
146
4.3 CDS-View-Erweiterung
150
4.4 Berechtigungen
153
4.5 Zusammenfassung
157
5 Einführung in TypeScript
159
5.1 TypeScript-Grundlagen
159
5.1.1 JavaScript
160
5.1.2 TypeScript
161
5.1.3 Zweck von TypeScript
162
5.1.4 Verwendung von TypeScript
162
5.1.5 Datentypen
165
5.2 TypeScript der nächsten Generation
165
5.2.1 Anonyme Funktionen
166
5.2.2 Arrow Functions
166
5.2.3 Rest-Parameter
167
5.2.4 Funktionsüberladung
168
5.2.5 Statische Mitglieder
168
5.2.6 Intersection- und Union-Typen
169
5.2.7 Variablendeklaration
170
5.2.8 Vererbung
171
5.2.9 Abstrakte Klassen
173
5.3 Klassen und Interfaces
174
5.3.1 Klassen
174
5.3.2 Interfaces
177
5.4 Generics
182
5.4.1 Beispiel für Generics
182
5.4.2 Methoden von generischen Typen
184
5.4.3 Generic Constraints
184
5.4.4 Generische Interfaces
185
5.4.5 Generische Klassen
186
5.5 Modulentwicklung
188
5.5.1 Was sind Module?
188
5.5.2 Warum Module verwenden?
188
5.5.3 Export-Module
189
5.5.4 Import-Module
189
5.6 Zusammenfassung
190
TEIL II Entwicklung
191
6 Entwicklung von OData-V4-Services mit dem ABAP RESTful Application Programming Model (Managed Scenario)
193
6.1 Entwicklung von Business-Objekten
194
6.1.1 Datenmodell
196
6.1.2 Core Data Services: Verhaltensdefinition
203
6.1.3 Projection-Views
205
6.1.4 Servicedefinition und Service-Binding
208
6.1.5 Draft Handling
215
6.2 Aktionen
224
6.3 Erweiterte Funktionen
228
6.3.1 Wertehilfen
229
6.3.2 Validierungen
231
6.3.3 Determinationen
233
6.3.4 Feature Control
235
6.4 Berechtigungsprüfung
237
6.4.1 CDS-Zugriffskontrollen
238
6.4.2 Implementierung der Authorization-Methode
239
6.5 Verschachtelte Business-Objekte
240
6.6 Zusammenfassung
242
7 Entwicklung von OData-V4-Services mit dem SAP Cloud Application Programming Model
243
7.1 Domänenmodellierung
244
7.1.1 Namenskonventionen
245
7.1.2 Entitäten, Typen und Schlüssel
247
7.1.3 Kompositionen und Assoziationen
253
7.1.4 Lokalisierte Daten
257
7.2 Service-Bereitstellung
259
7.2.1 Input-Validierung
259
7.2.2 OData-Annotationen
261
7.2.3 Kundenspezifische Logik
265
7.2.4 Kundenspezifische Implementierungen anbieten
265
7.2.5 Event Handler Hooks
265
7.3 Aufsetzen einer SAP-Cloud-Application-Programming-Model-Anwendung
267
7.3.1 Installieren der erforderlichen Software
267
7.3.2 Erstellen eines SAP-Cloud-Application-Programming-Model-Projekts
268
7.3.3 Erstellen des Entitätenmodells
269
7.3.4 Erstellen der Servicedefinition
270
7.3.5 Bereitstellen von Daten
276
7.3.6 Anzeige von Daten
279
7.4 Autorisierungsprüfungen
281
7.4.1 @requires
281
7.4.2 @restrict
281
7.5 Zusammenfassung
283
8 Entwicklung von OData-V2-Services mit dem SAP Gateway Service Builder
285
8.1 Servicemodellierung in der Transaktion SEGW
286
8.1.1 SEGW-Projekt erstellen
288
8.1.2 Datenmodellierung vornehmen
290
8.1.3 OData-Service registrieren
295
8.2 Create, Read, Update, Delete und Query
299
8.2.1 Read/Query
299
8.2.2 Create
310
8.2.3 Update
314
8.2.4 Delete
318
8.2.5 Assoziation implementieren
321
8.3 SADL-basierte OData-Services
328
8.3.1 Data Source Mapping
328
8.3.2 CDS-View-Entitäten als Datenquellen direkt referenzieren
334
8.4 Zusammenfassung
336
9 Entwicklung von SAPUI5-Freestyle-Anwendungen
337
9.1 SAPUI5 (Basic-)Projekt anlegen
339
9.1.1 Freestyle-Anwendung im SAP Business Application Studio anlegen
339
9.1.2 SAP Fiori Application Generator in Visual Studio Code
347
9.2 View aufbauen und UI-Komponenten verwenden
350
9.3 Applikationslogik, Formatter und Event Handler implementieren
362
9.4 Datenbindung
367
9.4.1 Binding Mode bei Datenbindung
370
9.4.2 Syntax bei Datenbindung
371
9.4.3 Arten von Datenbindung
372
9.5 Navigation und Routing
386
9.5.1 Hard-Coded Routing
388
9.5.2 Routing mit optionalen und Pflichtparametern
391
9.5.3 Navigation in Kombination mit Element Binding
394
9.6 Mehrsprachigkeit/Internationalization (i18n)
396
9.7 Deployment
398
9.8 Zusammenfassung
403
10 Entwicklung von SAPUI5-Freestyle-Anwendungen mit OData-V4-Services
405
10.1 Projekt anlegen
407
10.2 OData-Model-V4
412
10.2.1 OData-Model instanziieren
412
10.2.2 CRUDQ-Methoden
419
10.2.3 Datenbindung
423
10.2.4 Komfortfunktionen
423
10.3 Startseite implementieren
425
10.4 Navigation einbauen
432
10.5 Detailseite implementieren
434
10.6 Fragmente
435
10.6.1 Detailseite vorbereiten
436
10.6.2 Fragmente direkt einbetten
438
10.6.3 Fragmente aus dem Controller laden
440
10.7 SAPUI5-Projekte von einem Git Repository klonen
447
10.8 Zusammenfassung
450
11 Entwicklung von SAPUI5-Freestyle-Anwendungen mit OData-V2-Services
453
11.1 Projekt anlegen
455
11.2 OData-Model-V2
460
11.2.1 OData-Model instanziieren
460
11.2.2 CRUDQ-Methoden
467
11.2.3 Datenbindung
470
11.2.4 Komfortfunktionen
471
11.3 Startseite implementieren
472
11.3.1 Tabelle manuell aufbauen
473
11.3.2 Filterung und Sortierung
478
11.3.3 Smart Table verwenden
479
11.4 Navigation einbauen
481
11.5 Detailseite implementieren
484
11.5.1 Formular manuell aufbauen
484
11.5.2 Smart Form verwenden
486
11.6 Fragmente
488
11.6.1 Detailseite vorbereiten
488
11.6.2 Fragmente direkt einbetten
490
11.6.3 Fragmente aus dem Controller laden
492
11.7 SAPUI5-Projekte von einem Git Repository klonen
500
11.8 Zusammenfassung
503
12 Entwicklung von Benutzeroberflächen mit SAP Fiori Elements
505
12.1 List Report
506
12.1.1 Anwendungsfälle
508
12.1.2 Annotationen des List Reports
508
12.1.3 Implementierung eines List Reports
509
12.2 Object Page
514
12.2.1 Anwendungsfälle
516
12.2.2 Annotationen der Object Page
516
12.2.3 Implementierung einer Object Page
519
12.3 Overview Page
527
12.3.1 Cards
528
12.3.2 Anwendungsfälle
529
12.3.3 Best Practices für das Design der Pages
530
12.3.4 Annotationen der Overview Page
531
12.3.5 Implementierung einer Overview Page
532
12.4 Generische Annotationen
540
12.4.1 UI.HeaderInfo
541
12.4.2 UI.selectionField
541
12.4.3 UI.lineItem
542
12.4.4 UI.hidden
542
12.5 Zusammenfassung
543
13 Entwicklung von Benutzeroberflächen mit dem Flexible Programming Model
545
13.1 Einleitung
545
13.2 Programming Model Explorer
546
13.2.1 Erweiterungspunkte
547
13.2.2 Building Blocks
550
13.2.3 Controller-Erweiterung
551
13.2.4 SAP Fiori Elements: erweiterte Funktionen
552
13.3 Building Blocks
553
13.3.1 Field
554
13.3.2 Form
554
13.3.3 FormElement
555
13.3.4 Table
556
13.3.5 FilterBar
557
13.3.6 FilterField
558
13.3.7 MicroChart
558
13.3.8 Chart
559
13.3.9 FlexibleColumnLayoutActions
560
13.3.10 Share
560
13.3.11 Paginator
561
13.4 Implementieren des Flexible Programming Model
561
13.4.1 Das Flexible Programming Model in Freestyle-Applikationen
561
13.4.2 Neue Flexible-Programming-Model-Applikationen
562
13.4.3 Page Map
570
13.4.4 Controller-Erweiterung
576
13.5 Zusammenfassung
579
TEIL III Fortgeschrittene Themen
581
14 Datei-Upload
583
14.1 Media Entitys
583
14.2 OData V2
584
14.2.1 On-Premise-Grundlagen
584
14.2.2 OData-Service
587
14.2.3 Datei-Upload
593
14.2.4 Datei-Download
596
14.3 OData V4
597
14.3.1 Erweitern der Datenbanktabellen
598
14.3.2 Felder im ABAP RESTful Application Programming Model verfügbar machen
598
14.3.3 Projizieren der Felder
599
14.3.4 Vorschau der Applikation
600
14.4 Zusammenfassung
600
15 Formularvalidierung und Error Handling
601
15.1 Formularvalidierung
601
15.1.1 Validierungstypen
602
15.1.2 Empfehlungen der SAP Fiori Design Guidelines
605
15.1.3 Implementierung
607
15.2 Fehlerbehandlung
619
15.2.1 Empfehlungen der SAP Fiori Design Guidelines
619
15.2.2 Serverseitige OData-Implementierung
619
15.2.3 SAP-Fiori-Elements-Implementierung
625
15.3 Zusammenfassung
626
16 Entity Tags und Soft State
627
16.1 Soft-State-Aktivierung
627
16.1.1 DEFINE-Methode redefinieren
628
16.1.2 Instanzattribut anlegen
628
16.1.3 OPERATION_START-Methode redefinieren
629
16.1.4 OPERATION_END-Methode redefinieren
630
16.1.5 Session-Timeout setzen
630
16.2 ETags
631
16.2.1 ETags im ABAP RESTful Application Programming Model
632
16.2.2 ETags in SEGW-basierten OData-Services
632
16.3 Zusammenfassung
633
17 Erweiterbarkeit
635
17.1 Adaptation Projects
635
17.1.1 Erstellen eines Adaptation Projects
637
17.1.2 Erstellen von Erweiterungen im grafischen Editor
639
17.1.3 Deployen eines Adaptation Projects
645
17.2 Key-User-Erweiterbarkeit
647
17.3 Zusammenfassung
653
18 Bereitstellung
655
18.1 Continuous Integration, Continuous Delivery und Continuous Deployment
656
18.1.1 CTS und CTS+
658
18.1.2 SAP Continuous Integration and Delivery Service
661
18.2 Bereitstellung in SAP S/4HANA
672
18.3 Bereitstellung in der SAP Business Technology Platform
676
18.4 Zusammenfassung
680
Das Autorenteam
681
Index
683