Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
19
1 Einleitung
23
1.1 Was ist ABAP?
23
1.1.1 Die Evolution von ABAP
23
1.1.2 Der Umfang von ABAP
25
1.1.3 Die ABAP-Entwicklungsumgebung
26
1.1.4 Das ABAP-Programmiermodell
26
1.1.5 ABAP und SAP NetWeaver
29
1.1.6 ABAP vs. Java?
31
1.1.7 ABAP und Java!
32
1.2 Was ist das Ziel dieses Buches?
42
1.2.1 Zielgruppe dieses Buches
42
1.2.2 Aufbau dieses Buches
43
1.2.3 Beachtung von Programmierrichtlinien
49
1.2.4 Verwendete Syntaxkonventionen
50
1.3 Wie können Sie mit diesem Buch praktisch arbeiten?
51
1.3.1 Erstellung der Beispiele
51
1.3.2 Ziel der Beispiele
52
1.3.3 Verwendung der Beispiele
52
1.3.4 Beschriebene Releases
53
1.3.5 Verwendete Datenbanktabellen
53
2 Eine praktische Einführung
55
2.1 Funktionalität der Beispielanwendung
56
2.2 Erste Schritte in der ABAP Workbench
57
2.2.1 Einstieg über SAP Easy Access
57
2.2.2 Der Object Navigator
60
2.3 Pakete
63
2.3.1 Paket für lokale Entwicklungsobjekte
64
2.3.2 Pakete für transportierbare Entwicklungsobjekte
65
2.3.3 Paket anlegen
66
2.3.4 Transport Organizer aufrufen
70
2.4 Datenbanktabellen
71
2.4.1 Kundentabelle anlegen
72
2.4.2 Datenelement anlegen
76
2.4.3 Domäne anlegen
79
2.4.4 Kundentabelle fertig stellen
80
2.4.5 Suchhilfe anlegen
82
2.4.6 Mietwagentabelle anlegen
83
2.4.7 Reservierungstabelle anlegen
85
2.5 Anlegen eines ABAP-Programms
87
2.5.1 Hilfsprogramm anlegen
87
2.5.2 ABAP-Syntax
89
2.5.3 Allgemeiner Programmaufbau
91
2.5.4 Zwei »Hello-World«-Programme
93
2.5.5 Programme kopieren
97
2.6 Hilfsprogramm implementieren
97
2.6.1 Quelltext des Hilfsprogramms
97
2.6.2 Kettensätze
100
2.6.3 Datendeklarationen
100
2.6.4 Wertzuweisung an die Datenobjekte
101
2.6.5 Datenbankzugriffe
102
2.6.6 Ausnahmebehandlung
102
2.6.7 Test des Hilfsprogramms mit dem ABAP Debugger
102
2.6.8 Ergebnis des Hilfsprogramms im Data Browser
104
2.7 Benutzerdialog
106
2.7.1 Verwendung einer Funktionsgruppe
107
2.7.2 Top-Include der Funktionsgruppe
108
2.7.3 Funktionsbausteine anlegen
112
2.7.4 Funktionsbausteine testen
115
2.8 Anwendungslogik
118
2.8.1 Ausnahmeklassen
119
2.8.2 Anlegen einer Klasse für Reservierungen
120
2.8.3 Anlegen einer Klasse für Kundenobjekte
129
2.8.4 Anwendungsprogramm
135
2.8.5 Transaktionscode anlegen
139
2.8.6 Transaktion ausführen
141
2.8.7 Reporting
143
2.9 Zusammenfassung
145
2.10 Verwendung der Schlüsselwortdokumentation
146
3 ABAP-Grundlagen
151
3.1 ABAP und SAP NetWeaver
151
3.1.1 SAP NetWeaver
151
3.1.2 Der Application Server
152
3.1.3 Der Application Server ABAP
153
3.1.4 Die ABAP-Laufzeitumgebung
161
3.1.5 Die Textumgebung
162
3.2 ABAP-Programmorganisation und -Eigenschaften
163
3.2.1 ABAP-Programmaufbau
163
3.2.2 ABAP-Programmausführung
166
3.2.3 ABAP-Programmaufrufe
167
3.2.4 ABAP-Programmtypen
170
3.2.5 Weitere Programmeigenschaften
174
3.2.6 Verarbeitungsblöcke
176
3.3 Quelltextorganisation
180
3.3.1 Include-Programme
180
3.3.2 Makros
184
3.4 Software- und Speicherorganisation des AS ABAP
184
3.4.1 AS ABAP als System
184
3.4.2 Applikationsserver
185
3.4.3 Benutzersitzung
187
3.4.4 Hauptmodus
188
3.4.5 Interner Modus
188
4 Klassen und Objekte
191
4.1 Objektorientierung
191
4.2 Objektorientierte Programmierung in ABAP
194
4.3 Klassen
196
4.3.1 Globale und lokale Klassen
197
4.3.2 Klassen anlegen
198
4.4 Attribute und Methoden
206
4.4.1 Instanzkomponenten und statische Komponenten
206
4.4.2 Attribute
208
4.4.3 Methoden
210
4.4.4 Verwendung statischer Komponenten
213
4.4.5 Editor-Modus des Class Builder
215
4.5 Datentypen als Komponenten von Klassen
216
4.6 Objekte und Objektreferenzen
218
4.6.1 Objekte erzeugen und referenzieren
218
4.6.2 Die Selbstreferenz me
221
4.6.3 Referenzen zuweisen
222
4.6.4 Mehrfachinstanzierung
224
4.6.5 Objekterzeugung in Factory-Methode
226
4.6.6 Garbage Collection
229
4.7 Konstruktoren
231
4.7.1 Instanzkonstruktor
232
4.7.2 Statischer Konstruktor
234
4.7.3 Destruktoren
237
4.8 Lokale Deklarationen eines Class-Pools
238
4.8.1 Lokale Typen in Class-Pools
238
4.8.2 Lokale Klassen in Class-Pools
239
4.9 Verwendung von ABAP Objects auf dem AS ABAP
240
4.10 Zusammenfassung und Ausblick
243
5 Grundlegende ABAP-Sprachelemente
245
5.1 Datentypen und Datenobjekte
246
5.1.1 Datenobjekte
246
5.1.2 Datentypen
249
5.1.3 Elementare Datentypen und Datenobjekte
257
5.1.4 Strukturierte Datentypen und Datenobjekte
266
5.1.5 Tabellentypen und interne Tabellen
270
5.1.6 Referenztypen und Referenzvariablen
271
5.1.7 Datentypen im ABAP Dictionary
273
5.1.8 Flache und tiefe Datentypen
284
5.1.9 Generische Datentypen
286
5.1.10 Mehr zu Datenobjekten
289
5.2 Operationen und Ausdrücke
297
5.2.1 Zuweisungen
297
5.2.2 Typkonvertierungen
298
5.2.3 Spezielle Zuweisungen
308
5.2.4 Berechnungen
311
5.2.5 Logische Ausdrücke
318
5.3 Kontrollstrukturen
324
5.3.1 Bedingte Verzweigungen
324
5.3.2 Schleifen
327
5.4 Zeichen- und Bytekettenverarbeitung
330
5.4.1 Operationen mit Zeichenketten
331
5.4.2 Suchen und Ersetzen
333
5.4.4 Funktionen für die Zeichenkettenverarbeitung
342
5.4.5 Vergleichsoperatoren für die Zeichenkettenverarbeitung
343
5.5 Interne Tabellen
345
5.5.1 Eigenschaften interner Tabellen
346
5.5.2 Arbeiten mit internen Tabellen
354
6 Weiterführende Konzepte von ABAP Objects
369
6.1 Methodenschnittstellen und Methodenaufrufe
373
6.1.1 Parameterschnittstelle von Methoden
373
6.1.2 Methodenaufrufe
385
6.2 Vererbung
389
6.2.1 Grundlagen
389
6.2.2 Unterklassen anlegen
391
6.2.3 Sichtbarkeitsbereiche und Namensräume in der Vererbung
394
6.2.4 Methodenredefinition
396
6.2.5 Abstrakte Klassen und Methoden
400
6.2.6 Finale Klassen und Methoden
403
6.2.7 Statische Attribute in der Vererbung
404
6.2.8 Konstruktoren in der Vererbung
405
6.2.9 Instanzierbarkeit in der Vererbung
412
6.3 Interfaces
413
6.3.1 Grundlagen
414
6.3.2 Interfaces anlegen
416
6.3.3 Implementieren von Interfaces in Klassen
418
6.3.4 Zugriff auf Interfaces von Objekten
422
6.3.5 Zugriff auf statische Interfacekomponenten
427
6.3.6 Interfaces zusammensetzen
427
6.3.7 Aliasnamen für Interfacekomponenten
430
6.3.8 Interfaces und Vererbung
434
6.4 Objektreferenzen und Polymorphie
436
6.4.1 Statischer und dynamischer Typ
436
6.4.2 Zuweisungen zwischen Referenzvariablen
439
6.4.3 Polymorphie
448
6.5 Ereignisse und Ereignisbehandlung
458
6.5.1 Ereignisse deklarieren
461
6.5.2 Ereignisse auslösen
463
6.5.3 Ereignisbehandler
464
6.5.4 Ereignisbehandler registrieren
468
6.6 Shared Objects
470
6.6.1 Grundlagen – Gebiete und Co.
472
6.6.2 Zugriff auf Shared Objects
473
6.6.3 Gebiet anlegen
475
6.6.4 Sperren
478
6.6.5 Arbeiten mit Shared Objects
479
6.6.6 Verwaltung von Shared Objects
485
7 Klassisches ABAP – Ereignisse und Prozeduren
489
7.1 Ereignisorientierte Programmausführung
491
7.1.1 Ausführbare Programme
491
7.1.2 Dialogtransaktionen
498
7.1.3 Vergleich der klassischen Programmausführungen
500
7.2 Prozedurale Modularisierung
502
7.2.1 Funktionsbausteine
503
7.2.2 Unterprogramme
516
8 Fehlerbehandlung
523
8.1 Robuste Programme
523
8.1.1 Defensive Programmierung
523
8.1.2 Ausnahmesituationen
524
8.2 Ausnahmebehandlung
525
8.2.1 Klassenbasierte Ausnahmebehandlung
526
8.2.2 Klassische Ausnahmebehandlung
546
8.2.3 Nachrichten in der Ausnahmebehandlung
550
8.2.4 Kombination von klassenbasierter Ausnahmebehandlung und früheren Konzepten
552
8.2.5 Laufzeitfehler
555
8.3 Assertions
556
8.3.1 Vorteile von Assertions
556
8.3.2 Anwendung von Assertions
557
9 GUI-Programmierung mit ABAP
559
9.1 Allgemeine Dynpros
561
9.1.1 Bildschirmbild
562
9.1.2 Dynpro-Ablauflogik
563
9.1.3 Dynpros und ABAP-Programme
565
9.1.4 Dynpro-Folgen und Dynpro-Aufrufe
566
9.1.5 Dynpros anlegen
572
9.1.6 Dynpro-Felder
578
9.1.7 Funktionscodes und Funktionen
582
9.1.8 Kontextmenüs
589
9.1.9 Dialogmodule
591
9.1.10 Datentransport
593
9.1.11 Bedingte Modulaufrufe
594
9.1.12 Eingabeüberprüfungen
595
9.1.13 Feldhilfe
598
9.1.14 Eingabehilfe
600
9.1.15 Dynpros und Klassen
607
9.1.16 Dynpro Controls
626
9.1.17 GUI Controls
640
9.2 Selektionsbilder
672
9.2.1 Selektionsbilder anlegen
674
9.2.2 Parameter
675
9.2.3 Selektionskriterien
679
9.2.4 Weitere Elemente auf Selektionsbildern
685
9.2.5 Selektionsbilder aufrufen
688
9.2.6 Selektionsbildverarbeitung
689
9.2.7 Funktionen von Selektionsbildern
693
9.2.8 Standardselektionsbilder
697
9.2.9 Selektionsbilder als Programmschnittstellen
700
9.3 Klassische Listen
704
9.3.1 Listenerstellung
705
9.3.2 Bildschirmliste
706
9.3.3 Listen in ausführbaren Programmen
707
9.3.4 Listen und Transaktionen
708
9.3.5 Funktionen auf Listen
711
9.3.6 Drucklisten
715
9.3.7 Listen in ABAP Objects
719
9.4 Nachrichten
727
9.4.1 Nachrichten anlegen
727
9.4.2 Nachrichten senden
728
9.4.3 Nachrichtentyp
730
9.4.4 Verwendung von Nachrichten
732
9.5 Web Dynpro ABAP
733
9.5.1 Erste Schritte mit Web Dynpro ABAP
735
9.5.2 Query mit Web Dynpro ABAP
744
9.5.3 Zusammenfassung
767
10 Arbeiten mit persistenten Daten
769
10.1 Datenbankzugriffe
770
10.1.1 Definition von Datenbanktabellen im ABAP Dictionary
772
10.1.2 Open SQL
775
10.1.3 Konsistente Datenhaltung
808
10.1.4 Spezielle Abschnitte zu Datenbankzugriffen
819
10.2 Datenbankzugriffe mit Object Services
825
10.2.1 Persistente Klassen anlegen
826
10.2.2 Persistente Objekte verwalten
829
10.2.3 Objektidentität GUID
839
10.2.4 Transaktionsdienst
841
10.3 Dateischnittstellen
845
10.3.1 Dateien des Applikationsservers
846
10.3.2 Dateien des Präsentationsservers
851
10.4 Daten-Cluster
855
10.4.1 Daten-Cluster ablegen
855
10.4.2 Daten-Cluster einlesen
857
10.4.3 Daten-Cluster löschen
857
10.4.4 Beispiel zu Daten-Clustern
858
10.5 Berechtigungsprüfungen
860
10.5.1 Berechtigungsobjekte und Berechtigungen
860
10.5.2 Berechtigungsprüfung
861
11 Dynamische Programmierung
867
11.1 Feldsymbole und Datenreferenzen
868
11.1.1 Feldsymbole
869
11.1.2 Datenreferenzen
882
11.2 Run Time Type Services (RTTS)
893
11.2.1 Run Time Type Information (RTTI)
894
11.2.2 Run Time Type Creation (RTTC)
898
11.3 Dynamische Token-Angaben
903
11.3.1 Dynamische Angaben von Operanden
904
11.3.2 Dynamische Angaben von Klauseln
904
11.3.3 Spezielle dynamische Angaben von Klauseln
905
11.4 Dynamischer Prozeduraufruf
906
11.4.1 Dynamischer Methodenaufruf
907
11.4.2 Dynamischer Funktionsbausteinaufruf
910
11.5 Programmgenerierung
910
11.5.1 Transiente Programmgenerierung
912
11.5.2 Persistente Programmgenerierung
915
12 Externe Schnittstellen
917
12.1 Synchrone und asynchrone Kommunikation
918
12.1.1 Synchrone Kommunikation
919
12.1.2 Asynchrone Kommunikation
919
12.2 Remote Function Call (RFC)
921
12.2.1 RFC-Varianten
922
12.2.2 RFC-Kommunikationsszenarien
926
12.2.3 RFC-Programmierung auf dem AS ABAP
930
12.2.4 RFC-Programmierung einer externen RFC-Schnittstelle
940
12.2.5 RFC-Programmierung mit JCo
948
12.3 Internet Communication Framework (ICF)
956
12.3.1 ICF im AS ABAP
957
12.3.2 ICF-Server-Programmierung
958
12.3.3 ICF-Client-Programmierung
966
12.4 ABAP-Webservices
971
12.4.1 Was ist ein Webservice?
971
12.4.2 Webservices und Enterprise SOA
972
12.4.3 Standards für Webservices
973
12.4.4 Webservices auf dem AS ABAP
975
12.4.5 Rolle der Exchange Infrastructure
976
12.4.6 Web Service Framework
978
12.4.7 Webservice anlegen
978
12.4.8 Webservice freigeben
981
12.4.9 Webservice testen
983
12.4.10 Webservice publizieren
985
12.4.11 Client für Webservices anlegen
986
12.5 ABAP und XML
989
12.5.1 Was ist XML?
990
12.5.2 Die iXML-Bibliothek
995
12.5.3 Verwendung von XSLT
1000
12.5.4 Verwendung von Simple Transformations
1009
12.5.5 Zusammenfassung
1021
13 Test- und Analysewerkzeuge
1023
13.1 Statische Testverfahren
1025
13.1.1 Syntaxprüfung
1026
13.1.2 Erweiterte Programmprüfung
1027
13.1.3 Code Inspector
1030
13.2 Programmanalyse mit dem ABAP Debugger
1036
13.2.1 Der neue ABAP Debugger mit Zwei-Prozess-Architektur
1036
13.2.2 Oberfläche des ABAP Debuggers
1037
13.2.3 Verwendung des Debuggers
1041
13.3 Modultests mit ABAP Unit
1048
13.3.1 Was ist ein Modultest?
1048
13.3.2 Organisation von ABAP Unit
1049
13.3.3 Beispiel zur Anwendung von ABAP Unit
1051
13.3.4 Ausführung und Analyse eines Testlaufs
1056
13.3.5 ABAP Unit im Code Inspector
1058
13.4 ABAP Memory Inspector
1059
13.4.1 Dynamische Speicherobjekte
1060
13.4.2 Speicherabzüge erstellen
1063
13.4.3 Arbeiten mit dem Memory Inspector
1065
13.5 ABAP-Laufzeitanalyse
1068
13.5.1 Aufruf der Laufzeitanalyse
1069
13.5.2 Auswertung der Messdatendateien
1071
13.5.3 Tipps & Tricks
1072
13.6 Weitere Testwerkzeuge
1072
13.6.1 Coverage Analyzer
1073
13.6.2 extended Computer Aided Test Tool (eCATT)
1075
A Anhang
1077
A.1 Übersicht aller ABAP-Anweisungen
1077
A.1.1 Programmeinleitende Anweisungen
1077
A.1.2 Modularisierungsanweisungen
1077
A.1.3 Deklarative Anweisungen
1078
A.1.4 Objekterzeugung
1079
A.1.5 Programmeinheiten aufrufen und verlassen
1079
A.1.6 Programmablaufsteuerung
1080
A.1.7 Zuweisungen
1081
A.1.8 Interne Daten verarbeiten
1081
A.1.9 Benutzerdialoge
1083
A.1.10 Externe Daten bearbeiten
1085
A.1.11 Programmparameter
1086
A.1.12 Programmbearbeitung
1087
A.1.13 ABAP-Daten- und Kommunikationsschnittstellen
1087
A.1.14 Erweiterungen
1088
A.2 ABAP-Systemfelder
1088
A.3 ABAP-Programmtypen
1093
A.4 ABAP-Namenskonventionen
1095
A.5 Selektoren
1095
A.6 Hilfsklasse für einfache Textausgaben
1096
A.7 Webverweise
1099
A.8 Installation und Anwendung der SAP NetWeaver 2004s ABAP Trial Version
1100
Die Autoren
1103
Index
1107