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
30
1.2 Anwendungsprogramme und Laufzeitumgebung
31
1.2.1 Workprozesse
32
1.2.2 Struktur von ABAP-Programmen
34
1.3 Anmelden am und Abmelden vom System
37
1.3.1 Betriebswirtschaftlicher Modulüberblick
38
1.3.2 ABAP Workbench
41
1.3.3 Abmelden vom SAP-System
45
2 ABAP Dictionary
49
2.1 Einstieg in das ABAP Dictionary
49
2.1.1 Datenbanktabellen
50
2.1.2 Tabelle anlegen und pflegen
52
2.2 Datenelemente und Domänen
56
2.2.1 Datenelement anlegen
56
2.2.2 Domäne anlegen
61
2.2.3 Datenelement prüfen und aktivieren
66
2.2.4 Technische Einstellungen der Tabelle pflegen
67
2.2.5 Erweiterungskategorie pflegen
69
2.3 Datensätze erfassen
70
2.3.1 Datensätze eingeben
71
2.3.2 Tabelleninhalt anzeigen
72
3 Programmieren im ABAP Editor
73
3.1 ABAP-Report anlegen
73
3.2 ABAP Editor im Überblick
77
3.3 ABAP-Programme verstehen und bearbeiten
81
3.4 ABAP-Report ausführen
84
3.5 Datenbanktabelle lesen und ausgeben
85
3.6 Aufbereitung von Listen
89
3.6.1 Kettensatz
90
3.6.2 Linien
91
3.6.3 Leerzeilen
91
3.7 Quellcode schreiben und editieren
91
4 Felder und Berechnungen
101
4.1 Report vorbereiten
101
4.2 Felder deklarieren
105
4.2.1 Variablen deklarieren
106
4.2.2 Konstanten deklarieren
109
4.3 Grundrechenarten
110
4.3.1 Kompatible und konvertible Datenobjekte
112
4.3.2 Konvertierungsregeln
112
4.3.3 Besonderheiten bei der Division
113
4.4 Inline-Variablendeklarationen
115
4.4.1 Ableitung des Datentyps aus dem Kontext
115
4.4.2 Statische Ableitung und Deklaration
116
4.5 Codebeispiel zu Feldern und Berechnungen
117
5 Mit Zeichenketten arbeiten
125
5.1 Zeichenketten deklarieren
125
5.1.1 Datentyp c
126
5.1.2 Datentyp n
127
5.2 Zeichenkettenoperationen
128
5.2.1 Zeichenketten verschieben
129
5.2.2 Zeichenketten ersetzen
130
5.2.3 Zeichenketten verdichten
132
5.2.4 Zeichenkettenfelder zusammenziehen
132
5.2.5 Zeichenketten zerlegen
135
5.2.6 Zeichenkettenoperationen mit direkter Positionierung
136
5.3 Codebeispiel zu String-Operationen
137
6 Debugging von Programmen
145
6.1 Aufruf des ABAP Debugger
146
6.2 Mit dem ABAP Debugger arbeiten
149
6.2.1 Registerkarte »Desktop 1«
150
6.2.2 Registerkarte »Strukturen«
154
6.2.3 Registerkarte »Break-/Watchpoints«
156
6.2.4 Modus für Breakpoints
158
6.2.5 Statische Breakpoints
161
6.3 Schicht für Schicht: Layer-aware Debugging
161
6.4 Codebeispiel zum Layer-aware Debugging
168
7 Transparente Datenbanktabellen bearbeiten
171
7.1 Datenbanktabelle kopieren
172
7.2 Nicht-Schlüsselfelder ergänzen
177
7.2.1 Festwerte in Domäne einpflegen
178
7.2.2 Besonderheiten bei Währungs- und Mengenfeldern
180
7.2.3 Fremdschlüssel pflegen
182
7.3 Tabellen erweitern
190
7.3.1 Append-Strukturen pflegen
191
7.3.2 Include-Struktur einpflegen
194
7.4 Schlüsselfelder von Tabellen manipulieren
199
7.5 Tabellenfelder löschen
203
7.6 Tabellen löschen
204
8 Rechnen mit Datum und Zeit, Mengen und Währungen
207
8.1 Felddeklarationen
207
8.2 Rechnen mit Datumsfeldern
210
8.3 Rechnen mit Zeitfeldern
216
8.4 Rechnen mit Mengen- und Währungsfeldern
220
8.5 Codebeispiel zu Datums-, Zeit- und Währungsfeldern
222
9 Mit Daten in einer Datenbanktabelle arbeiten
235
9.1 Berechtigungskonzept
236
9.2 Sperrkonzept
238
9.3 Open-SQL-Anweisungen
240
9.3.1 Neuen Datensatz anlegen
242
9.3.2 Bestehenden Datensatz ändern
245
9.3.3 Datensatz modifizieren
245
9.3.4 Datensatz löschen
246
9.3.5 Löschen an eine Bedingung knüpfen
247
9.4 Codebeispiel zu INSERT
248
9.5 Codebeispiel zu UPDATE
252
9.6 Codebeispiel zu MODIFY
256
9.7 Codebeispiel zu DELETE
259
10 Programmablaufsteuerung und logische Ausdrücke
263
10.1 Kontrollstrukturen
263
10.2 Arbeiten mit Mustern
264
10.3 Verzweigungen
268
10.3.1 IF-Struktur
269
10.3.2 CASE-Struktur
272
10.4 Schleifen
274
10.4.1 SELECT-Schleife
274
10.4.2 DO-Schleife
275
10.4.3 WHILE-Schleife
277
10.4.4 Abbruchanweisungen für Schleifen
278
10.5 Logische Ausdrücke
282
10.5.1 Einfache logische Ausdrücke
282
10.5.2 Verknüpfte logische Ausdrücke
285
10.6 Codebeispiel zu IF
289
10.7 Codebeispiel zu CASE
294
10.8 Codebeispiel zu DO und Abbruchbedingungen
299
10.9 Codebeispiel zu WHILE und logischen Ausdrücken
305
11 Selektionsbildschirme
313
11.1 Ereignisse
316
11.1.1 Reihenfolge von Ereignissen
316
11.1.2 Beispiele für Ereignisse
317
11.2 Einfache Selektionen
319
11.2.1 PARAMETERS-Anweisung
319
11.2.2 Zusätze zur PARAMETERS-Anweisung
320
11.3 Komplexe Selektionen
327
11.3.1 SELECT-OPTIONS-Anweisung
327
11.3.2 Mehrfachselektionen
329
11.3.3 Zusätze zur SELECT-OPTIONS-Anweisung
331
11.4 Selektionstexte verwenden
332
11.4.1 Textelemente im Überblick
332
11.4.2 Selektionstexte anlegen
333
11.5 Selektionsbild speichern
337
11.5.1 Selektionsvariante anlegen
337
11.5.2 Report mit Variante starten
342
11.6 Ergänzende Textobjekte
344
11.6.1 Textsymbole anlegen
344
11.6.2 Nachrichten anlegen
345
11.6.3 Nachrichten im Rahmen der Fehlerbehandlung
347
11.7 Selektionsbilder frei gestalten
350
11.7.1 Einzelne Zeile gestalten
350
11.7.2 Zeilenblock gestalten
352
11.8 Codebeispiel zum Selektionsbild (einfache Form)
354
11.9 Codebeispiel zum Selektionsbild (erweiterte Form)
360
12 Interne Tabellen
371
12.1 Sinn und Zweck interner Tabellen
372
12.2 Aufbau und Arten interner Tabellen
374
12.3 Interne Standardtabelle deklarieren
377
12.4 Interne Standardtabelle füllen
380
12.5 Interne Tabelle zeilenweise verarbeiten
384
12.6 Inhalte von internen Tabellen löschen
393
12.7 Codebeispiel zum Arbeiten mit internen Tabellen
394
13 Modularisierung von Programmen
405
13.1 Modularisierungstechniken
405
13.2 Quelltextmodule
408
13.3 Unterprogramme
411
13.3.1 Globale und lokale Variablen
413
13.3.2 Interne Tabellen übergeben
416
13.3.3 Externe Unterprogramme
417
13.3.4 Externe Reports
418
13.4 Funktionsbausteine
421
13.4.1 Function Builder
421
13.4.2 Funktionsbaustein zum Starten eines Programms
422
13.4.3 Funktionsbaustein zum Download einer internen Tabelle
433
13.5 ABAP-Klassen
437
13.5.1 Klassen und Funktionsgruppen
437
13.5.2 Globale und lokale Klassen
439
13.5.3 Class Builder
439
13.5.4 Lokale Klassen
444
13.6 Speicherbereiche für die Datenübergabe
445
13.6.1 Globales SAP Memory
446
13.6.2 Lokales SAP Memory
446
13.6.3 ABAP Memory
447
13.6.4 Shared Objects
449
13.7 Codebeispiele zur Modularisierung
449
13.8 Codebeispiele zum Aufruf fremder Reports
461
14 ABAP in Eclipse
467
14.1 Eclipse als alternative Entwicklungsumgebung
467
14.2 Installation von ABAP in Eclipse
469
14.2.1 Java herunterladen
469
14.2.2 Eclipse herunterladen
469
14.2.3 ABAP Development Tools herunterladen
471
14.3 Erste Schritte mit ABAP in Eclipse
473
14.3.1 ABAP-Projekt anlegen
474
14.3.2 Ein ABAP-Entwicklungsobjekt bearbeiten
477
14.3.3 Ein neues ABAP-Entwicklungsobjekt anlegen
479
14.4 ABAP in Eclipse oder im SAP GUI?
482
15 Core Data Services zur Abbildung von Datenmodellen
485
15.1 Datenbank-Views in der Anwendungsentwicklung
485
15.2 Klassische Datenbank-Views im ABAP Dictionary
487
15.2.1 Datenbank-View anlegen
487
15.2.2 Datensätze anzeigen
491
15.3 CDS Views in Eclipse
492
15.3.1 CDS View anlegen
492
15.3.2 Projektionsliste des Views bearbeiten
497
15.3.3 CDS View mit Annotationen und Assoziationen anreichern
499
15.3.4 CDS Views mit Assoziationen verknüpfen
502
15.3.5 Datenvorschau
504
15.3.6 Zugriff auf CDS Views
505
15.3.7 Abfrage zur Verwendung in Programmen anpassen
511
15.3.8 Zielbereich per Inline-Deklaration definieren
512
15.3.9 Codebeispiel zum Zugriff auf einen CDS View
513
16 Weiterführende Themen
517
16.1 Interessante Zeiten für die Programmiersprache ABAP
517
16.2 SAP HANA
519
16.3 Wichtige Frameworks im SAP-Standard
519
16.3.1 SAP Fiori
520
16.3.2 OData-Services mit SAP Gateway
522
16.3.3 BOPF und RESTful ABAP Programming Model
523
16.3.4 Frameworks für Erweiterungen
524
16.4 Cloudbasierte Entwicklung
527
16.5 Auf zu neuen Ufern!
531
Anhang
533
A Icons auf einen Blick
533
B Abkürzungsverzeichnis
535
Die Autoren
537
Index
539