Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Einleitung
15
1 ABAP und die ersten Schritte im SAP-System
21
1.1 Architektur des SAP-Systems im Überblick
23
1.1.1 Technische Architektur
23
1.1.2 Betriebswirtschaftlich-organisatorische Architektur
26
1.1.3 Plattformunabhängigkeit
29
1.2 Anwendungsprogramme und Laufzeitumgebung
30
1.2.1 Workprozesse
31
1.2.2 Struktur von ABAP-Programmen
33
1.3 Anmelden und Abmelden am System
36
1.3.1 Betriebswirtschaftlicher Modulüberblick
37
1.3.2 ABAP Workbench
40
1.3.3 Abmelden vom SAP-System
44
2 ABAP Dictionary
47
2.1 Einstieg in das ABAP Dictionary
47
2.1.1 Datenbanktabellen
48
2.1.2 Tabelle anlegen und pflegen
49
2.2 Datenelemente und Domänen
54
2.2.1 Datenelement anlegen
54
2.2.2 Domäne anlegen
59
2.2.3 Datenelement prüfen und aktivieren
63
2.2.4 Technische Einstellungen der Tabelle pflegen
64
2.3 Datensätze erfassen
67
2.3.1 Datensätze eingeben
68
2.3.2 Tabelleninhalt anzeigen
68
3 Programmieren im ABAP Editor
71
3.1 ABAP-Report anlegen
71
3.2 ABAP Editor im Überblick
74
3.3 ABAP-Programme verstehen und bearbeiten
78
3.4 ABAP-Report ausführen
81
3.5 Datenbanktabelle lesen und ausgeben
82
3.6 Aufbereitung von Listen
86
3.6.1 Kettensatz
87
3.6.2 Linien
88
3.6.3 Leerzeilen
88
3.7 Quellcode schreiben und editieren
88
4 Felder und Berechnungen
97
4.1 Report vorbereiten
97
4.2 Felder deklarieren
101
4.2.1 Variablen deklarieren
101
4.2.2 Konstanten deklarieren
105
4.3 Grundrechenarten
106
4.3.1 Kompatible und konvertible Datenobjekte
107
4.3.2 Konvertierungsregeln
108
4.3.3 Besonderheiten bei der Division
109
4.4 Inline-Variablendeklarationen
110
4.4.1 Ableitung des Datentyps aus dem Kontext
111
4.4.2 Statische Ableitung und Deklaration
112
4.5 Codebeispiel zu Feldern und Berechnungen
113
5 Mit Zeichenketten arbeiten
119
5.1 Zeichenketten deklarieren
119
5.1.1 Datentyp c
120
5.1.2 Datentyp n
121
5.2 Zeichenkettenoperationen
122
5.2.1 Zeichenketten verschieben
122
5.2.2 Zeichenketten ersetzen
124
5.2.3 Zeichenketten verdichten
125
5.2.4 Zeichenkettenfelder zusammenziehen
126
5.2.5 Zeichenketten zerlegen
129
5.2.6 Zeichenkettenoperationen mit direkter Positionierung
130
5.3 Codebeispiel zu String-Operationen
131
6 Debugging von Programmen
137
6.1 Aufruf des ABAP Debuggers
137
6.2 Mit dem ABAP Debugger arbeiten
141
6.2.1 Registerkarte »Desktop 1«
142
6.2.2 Registerkarte »Strukturen«
146
6.2.3 Registerkarte »Break-/Watchpoints«
147
6.2.4 Modus für Breakpoints
150
6.2.5 Statische Breakpoints
152
6.3 Schicht für Schicht: Layer-aware Debugging
153
6.4 Codebeispiel zum Layer-aware Debugging
160
7 Transparente Datenbanktabellen bearbeiten
163
7.1 Datenbanktabelle kopieren
164
7.2 Nicht-Schlüsselfelder ergänzen
169
7.2.1 Festwerte in Domäne einpflegen
169
7.2.2 Besonderheiten bei Währungs- und Mengenfeldern
171
7.2.3 Fremdschlüssel pflegen
174
7.3 Tabellen erweitern
181
7.3.1 Append-Strukturen pflegen
182
7.3.2 Include-Struktur einpflegen
185
7.4 Schlüsselfelder von Tabellen manipulieren
189
7.5 Tabellenfelder löschen
193
7.6 Tabellen löschen
195
8 Rechnen mit Datum und Zeit, Mengen und Währungen
199
8.1 Felddeklarationen
199
8.2 Rechnen mit Datumsfeldern
202
8.3 Rechnen mit Zeitfeldern
208
8.4 Rechnen mit Mengen- und Währungsfeldern
212
8.5 Codebeispiel zu Datums-, Zeit- und Währungsfeldern
214
9 Mit Daten in einer Datenbanktabelle arbeiten
227
9.1 Berechtigungskonzept
228
9.2 Sperrkonzept
230
9.3 Open-SQL-Anweisungen
232
9.3.1 Neuen Datensatz anlegen
234
9.3.2 Bestehenden Datensatz ändern
236
9.3.3 Datensatz modifizieren
237
9.3.4 Datensatz löschen
237
9.3.5 Löschen an eine Bedingung knüpfen
239
9.4 Codebeispiel zu INSERT
240
9.5 Codebeispiel zu UPDATE
243
9.6 Codebeispiel zu MODIFY
247
9.7 Codebeispiel zu DELETE
250
10 Programmablaufsteuerung und logische Ausdrücke
255
10.1 Kontrollstrukturen
255
10.2 Arbeiten mit Mustern
256
10.3 Verzweigungen
260
10.3.1 IF-Struktur
261
10.3.2 CASE-Struktur
263
10.4 Schleifen
265
10.4.1 SELECT-Schleife
266
10.4.2 DO-Schleife
266
10.4.3 WHILE-Schleife
268
10.4.4 Abbruchanweisungen für Schleifen
270
10.5 Logische Ausdrücke
273
10.5.1 Einfache logische Ausdrücke
274
10.5.2 Verknüpfte logische Ausdrücke
276
10.6 Codebeispiel zu IF
280
10.7 Codebeispiel zu CASE
285
10.8 Codebeispiel zu DO und Abbruchbedingungen
289
10.9 Codebeispiel zu WHILE und logischen Ausdrücken
295
11 Selektionsbildschirme
303
11.1 Ereignisse
306
11.1.1 Reihenfolge von Ereignissen
306
11.1.2 Beispiele für Ereignisse
307
11.2 Einfache Selektionen
309
11.2.1 PARAMETERS-Anweisung
309
11.2.2 Zusätze zur PARAMETERS-Anweisung
310
11.3 Komplexe Selektionen
316
11.3.1 SELECT-OPTIONS-Anweisung
317
11.3.2 Mehrfachselektionen
319
11.3.3 Zusätze zur SELECT-OPTIONS-Anweisung
321
11.4 Selektionstexte verwenden
322
11.4.1 Textelemente im Überblick
322
11.4.2 Selektionstexte anlegen
322
11.5 Selektionsbild speichern
326
11.5.1 Selektionsvariante anlegen
326
11.5.2 Report mit Variante starten
331
11.6 Ergänzende Textobjekte
333
11.6.1 Textsymbole anlegen
333
11.6.2 Nachrichten anlegen
334
11.6.3 Nachrichten im Rahmen der Fehlerbehandlung
336
11.7 Selektionsbilder frei gestalten
338
11.7.1 Einzelne Zeile gestalten
339
11.7.2 Zeilenblock gestalten
341
11.8 Codebeispiel zum Selektionsbild (einfache Form)
342
11.9 Codebeispiel zum Selektionsbild (erweiterte Form)
348
12 Interne Tabellen
359
12.1 Sinn und Zweck interner Tabellen
360
12.2 Aufbau und Arten interner Tabellen
362
12.3 Interne Standardtabelle deklarieren
364
12.4 Interne Standardtabelle füllen
367
12.5 Interne Tabelle zeilenweise verarbeiten
371
12.6 Inhalte von internen Tabellen löschen
380
12.7 Codebeispiel zum Arbeiten mit internen Tabellen
381
13 Modularisierung von Programmen
391
13.1 Modularisierungstechniken
391
13.2 Quelltextmodule
394
13.3 Unterprogramme
396
13.3.1 Globale und lokale Variablen
398
13.3.2 Interne Tabellen übergeben
401
13.3.3 Externe Unterprogramme
403
13.3.4 Externe Reports
404
13.4 Funktionsbausteine
406
13.4.1 Function Builder
407
13.4.2 Funktionsbaustein zum Starten eines Programms
408
13.4.3 Funktionsbaustein zum Download einer internen Tabelle
417
13.5 ABAP-Klassen
422
13.5.1 Klassen und Funktionsgruppen
422
13.5.2 Globale und lokale Klassen
424
13.5.3 Class Builder
424
13.5.4 Lokale Klassen
429
13.6 Speicherbereiche für die Datenübergabe
430
13.6.1 Globaler SAP Memory
430
13.6.2 Lokaler SAP Memory
431
13.6.3 ABAP Memory
431
13.6.4 Shared Objects
433
13.7 Codebeispiele zur Modularisierung
434
13.8 Codebeispiele zum Aufruf fremder Reports
445
14 ABAP in Eclipse
451
14.1 Eclipse als alternative Entwicklungsumgebung
451
14.2 Installation von ABAP in Eclipse
453
14.2.1 Java herunterladen
453
14.2.2 Eclipse herunterladen
454
14.2.3 ABAP Development Tools herunterladen
456
14.3 Erste Schritte mit ABAP in Eclipse
458
14.3.1 ABAP-Projekt anlegen
459
14.3.2 Ein ABAP-Entwicklungsobjekt bearbeiten
463
14.3.3 Ein neues ABAP-Entwicklungsobjekt anlegen
465
14.4 ABAP in Eclipse oder im SAP GUI?
467
15 Core Data Services zur Abbildung von Datenmodellen
469
15.1 Datenbank-Views in der Anwendungsentwicklung
469
15.2 Klassische Datenbank-Views im ABAP Dictionary
471
15.2.1 Datenbank-View anlegen
471
15.2.2 Datensätze anzeigen
475
15.3 CDS Views in Eclipse
475
15.3.1 CDS View anlegen
475
15.3.2 Projektionsliste des Views bearbeiten
478
15.3.3 CDS View mit Annotationen und Assoziationen anreichern
480
15.3.4 CDS Views mit Assoziationen verknüpfen
484
15.3.5 Datenvorschau
485
15.3.6 Zugriff auf CDS Views
487
15.3.7 Abfrage zur Verwendung in Programmen anpassen
492
15.3.8 Zielbereich per Inline-Deklaration definieren
493
15.3.9 Codebeispiel zum Zugriff auf einen CDS View
493
16 Weiterführende Themen
497
16.1 Interessante Zeiten für die Programmiersprache ABAP
497
16.2 SAP HANA
498
16.3 Wichtige Frameworks im SAP-Standard
499
16.3.1 Web Dynpro ABAP und SAP Fiori
500
16.3.2 OData-Services mit SAP Gateway
504
16.3.3 Frameworks für Erweiterungen
505
16.4 Cloudbasierte Entwicklung
508
16.5 Auf zu neuen Ufern!
511
A Icons auf einen Blick
517
B Abkürzungsverzeichnis
521
C Die Autoren
523
Index
525