Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Einleitung
17
1 Technische Vorbereitungen für ein Testsystem
23
1.1 Die ABAP Development Tools herunterladen und installieren
23
1.1.1 Installation von Eclipse
24
1.1.2 ABAP Development Tools installieren
26
1.2 Einen SAP-BTP-Testaccount erstellen
31
1.2.1 Eine ABAP-Umgebung erstellen
33
1.2.2 Einen Service Key generieren
36
1.3 Checkliste
38
2 Erste Schritte
41
2.1 Eine Systemverbindung herstellen
41
2.1.1 Ein ABAP-Cloud-Projekt anlegen (Cloud-Systeme)
43
2.1.2 Ein ABAP-Projekt anlegen (On-Premise-Systeme)
46
2.2 Eine Hello-World-Anwendung erstellen
48
2.2.1 Paket anlegen
48
2.2.2 Rumpf-Klasse anlegen
51
2.2.3 Ausführen der Rumpf-Klasse
56
2.3 Entwicklungsobjekte öffnen
57
2.3.1 Über das Paket unter »Favorite Packages«
57
2.3.2 Über die Funktion »Open ABAP Development Object«
58
2.4 Mit Kommentaren arbeiten
59
2.5 SAP-Hilfe nutzen
60
2.6 Syntaxregeln von ABAP
62
2.7 Deklaration von Variablen
63
2.7.1 Felder
63
2.7.2 Konstanten
67
2.7.3 Feldsymbole
67
2.7.4 Inline-Deklarationen
69
2.7.5 Strukturen
70
2.7.6 Unterschied zwischen TYPE und LIKE
70
2.8 Initialisierung von Variablen
71
2.8.1 Felder initialisieren
71
2.8.2 Speicherbereich freigeben
72
2.9 Checkliste
72
3 Debugging
75
3.1 Debugger aufrufen und beenden
75
3.2 Variablen-Anzeige
78
3.3 Steuerung des Debuggers
79
3.4 Aufrufstack
80
3.5 Watchpoints
82
3.6 Checkliste
83
4 ABAP Dictionary
85
4.1 Das zweistufige Domänenprinzip
86
4.2 Domänen anlegen
90
4.3 Datenelemente anlegen
92
4.4 Datenbanktabellen
93
4.4.1 Datenbanktabellen anzeigen
94
4.4.2 Datenbanktabellen anlegen
96
4.4.3 Datenbanktabelle umsetzen
98
4.5 Strukturen
101
4.5.1 Struktur anlegen
101
4.5.2 Verwendung von Währungsfeldern
102
4.6 Checkliste
102
5 ABAP-Grundbefehle
105
5.1 Steueranweisungen
105
5.1.1 IF-Abfragen
106
5.1.2 Logische Ausdrücke
107
5.1.3 CASE-Anweisungen
108
5.1.4 Weitere Fallunterscheidungen
109
5.1.5 DO-Schleifen
112
5.1.6 WHILE-Schleifen
113
5.1.7 CHECK-Anweisungen
114
5.1.8 EXIT-Anweisungen
114
5.1.9 CONTINUE-Anweisungen
115
5.2 Mit Zeichenketten arbeiten
116
5.2.1 Vergleich von Zeichenketten
116
5.2.2 Verkettungsoperatoren
117
5.2.3 Teilfeldzugriffe
119
5.2.4 Teilzeichenketten finden
121
5.2.5 Teilzeichenketten ersetzen
123
5.2.6 Eingebaute Funktionen für Zeichenketten
125
5.2.7 Zeichenketten-Templates
126
5.3 Rechenoperationen
130
5.3.1 Mathematische Funktionen
131
5.3.2 Berechnungszuweisungen
132
5.3.3 Mit Datums- und Zeitwerten rechnen
133
5.4 Typdefinitionen
136
5.4.1 Felder
137
5.4.2 Strukturen
138
5.5 Checkliste
140
6 Mit internen Tabellen arbeiten
143
6.1 Tabellenarten
145
6.1.1 Standardtabellen
146
6.1.2 Sortierte Tabellen
146
6.1.3 Hash-Tabellen
146
6.2 Interne Tabellen definieren
147
6.3 Zeilen hinzufügen
149
6.3.1 Daten mit SELECT hinzufügen
149
6.3.2 Zeilen mit APPEND anhängen
150
6.3.3 Zeilen mit INSERT hinzufügen
151
6.3.4 Werte mit VALUE hinzufügen
153
6.3.5 Der Zusatz FOR
155
6.3.6 Der Zusatz LINES OF
157
6.4 Inhalt auslesen
158
6.4.1 Tabellen mit READ TABLE auslesen
159
6.4.2 Tabellenausdrücke
161
6.4.3 Tabellen mit LOOP AT auslesen
165
6.5 Inhalt ändern
167
6.5.1 Tabelle mit READ TABLE ändern
167
6.5.2 Tabelle mit MODIFY ändern
168
6.5.3 Tabelle mit LOOP AT ändern
169
6.5.4 Tabelle mit Tabellenausdrücken ändern
170
6.6 Einträge löschen
171
6.7 Interne Tabellen kopieren
171
6.7.1 Strukturgleiche interne Tabellen kopieren
172
6.7.2 Strukturfremde interne Tabellen kopieren
173
6.7.3 CORRESPONDING: Mapping von Strukturen und internen Tabellen
173
6.8 Interne Tabellen aufbereiten
176
6.8.1 Sortieren mit SORT
176
6.8.2 Zusammenfassung mit COLLECT
177
6.8.3 Reduzierungen mit REDUCE
178
6.8.4 Filterungen mit FILTER
179
6.9 Gruppieren mit dem Zusatz GROUP BY
180
6.9.1 Repräsentantenbindung
181
6.9.2 Gruppenschlüsselbindung
183
6.9.3 Zusatz WITHOUT MEMBERS
184
6.9.4 Zusätze GROUP SIZE und GROUP INDEX
184
6.10 Eingebaute Funktionen für interne Tabellen
185
6.10.1 Funktion »lines()«
185
6.10.2 Funktion »concat_lines_of()«
186
6.10.3 Funktion »line_index()«
186
6.10.4 Funktion »line_exists()«
187
6.11 Checkliste
187
7 Zugriff auf die Datenbank
191
7.1 ABAP-SQL-Anweisung SELECT
193
7.1.1 Einträge lesen
193
7.1.2 Gelesene Spalten einschränken
197
7.1.3 Zielspalten angeben
197
7.1.4 Inline-Deklaration
199
7.1.5 WHERE-Klauseln
201
7.1.6 Ranges-Tabellen
203
7.1.7 FOR ALL ENTRIES IN: Einschränkung durch interne Tabellen
204
7.1.8 Gruppierung und Sortierung der Ergebnisse
205
7.1.9 Host-Ausdrücke
207
7.1.10 OFFSET: Begrenzung der Ergebnismenge
209
7.1.11 JOIN: Verknüpfung
210
7.1.12 WITH: Allgemeine Tabellenausdrücke
215
7.1.13 UNION: Vereinigung
217
7.1.14 INTERSECT: Schnittmenge
218
7.1.15 EXCEPT: Ausschließen
218
7.1.16 Unterabfragen
219
7.1.17 SELECT auf interne Tabellen
221
7.2 Ändernde ABAP-SQL-Anweisungen
222
7.2.1 Sperrkonzept
223
7.2.2 Datenkonsistenz
225
7.2.3 INSERT: Einträge einfügen
226
7.2.4 MODIFY: Einfügen oder ändern
228
7.2.5 UPDATE: Einträge ändern
230
7.2.6 DELETE: Löschen von Einträgen
232
7.3 ABAP-SQL-Ausdrücke
234
7.3.1 CASE-Anweisungen
235
7.3.2 Verknüpfungen von Zeichenketten mit »&&«
236
7.3.3 Arithmetische Ausdrücke
236
7.3.4 Typumwandlungen mit CAST
237
7.3.5 Elementare Werte
238
7.4 ABAP-SQL-Funktionen
239
7.4.1 Aggregatfunktionen
239
7.4.2 Zeichenkettenfunktionen
242
7.4.3 Numerische Funktionen
243
7.4.4 Datums- und Zeitfunktionen
244
7.4.5 Coalesce-Funktion: Nullwerte ersetzen
246
7.4.6 UUID-Funktion: Erzeugung eindeutiger Schlüssel
247
7.5 Vier goldene Regeln für SAP HANA
247
7.6 Checkliste
249
8 Grundlagen der Objektorientierung
253
8.1 Einleitung: Klassen und Objekte
255
8.2 Grundaufbau einer ABAP-Klasse
258
8.3 Klassen instanziieren
259
8.3.1 Instanziierung mit CREATE OBJECT
261
8.3.2 Instanziierung mit NEW
262
8.4 Klassen anlegen
262
8.4.1 Globale Klasse anlegen
262
8.4.2 Lokale Klasse anlegen
263
8.5 Statische Klassen
265
8.6 Datenkapselung
266
8.7 Datentypen und Attribute
270
8.7.1 Zugriff auf Attribute
271
8.7.2 Selbstreferenz
271
8.8 Methoden und Parameter
272
8.8.1 Methoden implementieren
274
8.8.2 Methoden aufrufen
275
8.8.3 Autovervollständigung
279
8.9 Konstruktoren
280
8.9.1 Instanzkonstruktor
281
8.9.2 Statischer Konstruktor
282
8.10 Ereignisse
283
8.10.1 Ereignisse definieren
285
8.10.2 Ereignisse auslösen
286
8.10.3 Ereignisbehandler definieren
286
8.10.4 Ereignisbehandler registrieren
286
8.10.5 Beispiel: Definition, Auslösen und Behandlung eines Ereignisses
287
8.11 Vererbung
289
8.11.1 Redefinition
291
8.11.2 Klassenhierarchien
295
8.12 Weitere Klassenarten
297
8.12.1 Abstrakte Klassen
297
8.12.2 Finale Klassen
297
8.12.3 Ausnahmeklassen
298
8.13 Freunde
298
8.14 Interfaces
300
8.14.1 Interface anlegen
303
8.14.2 Interface implementieren
304
8.14.3 Interface verwenden
305
8.15 Ausnahmen für Methoden
307
8.15.1 Klassenbasierte Ausnahmen
307
8.15.2 Lokale Ausnahmen
310
8.16 Casting
312
8.16.1 Casting mit dem Zuweisungsoperator
313
8.16.2 Casting mit dem Casting-Operator
313
8.16.3 Casting mit der Anweisung CAST
313
8.17 Checkliste
313
9 ABAP Core Data Services
315
9.1 CDS View anlegen
316
9.2 CDS Views mit Parametern
322
9.3 CDS-Annotationen
325
9.4 CDS-Sprachelemente
326
9.4.1 Klassische Sprachelemente
327
9.4.2 Vergleichsoperatoren
328
9.4.3 Aggregatfunktionen
328
9.4.4 Zeichenkettenfunktionen
328
9.4.5 Fallunterscheidungen
329
9.4.6 Numerische Funktionen
330
9.4.7 Datumsfunktionen
330
9.4.8 Typwandlung mit CAST
331
9.4.9 Umwandlung von Einheiten
332
9.4.10 Umwandlung von Währungen
332
9.5 CDS-Zugriffskontrollen
333
9.6 CDS-Assoziationen
335
9.7 CDS-Hierarchien
337
9.8 Checkliste
342
10 ABAP RESTful Application Programming Model
345
10.1 Grundlagen der RAP-Services
345
10.2 Eine RAP-Anwendung erstellen
352
10.2.1 Datenbanktabelle kopieren
352
10.2.2 Generator ausführen
354
10.2.3 Vorschau aufrufen
358
10.2.4 Oberfläche anpassen
361
10.2.5 Aktion ausprogrammieren
363
10.3 Checkliste
369
11 Zugriff auf Geschäftsobjekte mit der Entity Manipulation Language
371
11.1 Lesen
372
11.1.1 Lesen bestimmter Felder
375
11.1.2 Zusatz FROM
376
11.2 Anlegen
377
11.3 Aktualisieren
379
11.4 Löschen
380
11.5 Aktion aufrufen
382
11.6 Checkliste
383
Anhang
385
A Das SAP-Flugdatenmodell
387
B Übersicht der ABAP-Anweisungen
389
C Eingebaute Datentypen
395
D Wichtige Systemfelder
397
E Namenskonventionen für die Programmierung
399
Der Autor
403
Index
405