Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort zur vierten Auflage
33
Einleitung
35
TEIL I ABAP-Syntax
39
1 Anweisungen
41
1.1 ABAP-Wörter
42
1.2 Operanden
42
1.2.1 Bezeichner für einzelne Operanden
43
1.2.2 Angabe einzelner Operanden
48
1.2.3 Operandenposition und -typ
49
1.2.4 Datenobjekte an Operandenpositionen
50
1.2.5 Funktionen und Ausdrücke an Operandenpositionen
55
1.3 Operatoren und Ausdrücke
59
1.3.1 Operatoren
59
1.3.2 Ausdrücke
60
2 Bezeichner
63
2.1 Namenskonventionen
63
2.2 Namensräume
64
3 Kettensätze
65
4 Kommentare
67
5 Programmdirektiven
69
5.1 ABAP Doc
69
5.1.1 ABAP-Doc-Kommentare
69
5.1.2 Parameterschnittstelle von Prozeduren
70
5.1.3 Formatierungen
71
5.1.4 Kurztexte und deren Synchronisation
72
5.2 Pragmas
74
5.3 Pseudokommentare für den Code Inspector
75
TEIL II Programmaufbau
77
6 Programme
79
6.1 Eigenständige Programme
79
6.1.1 Programmtypen
80
6.1.2 Programmeinleitung
81
6.2 Ausführbare Programme
81
6.2.1 Zusätze für die Grundliste des Programms
82
6.2.2 Zusatz für die Nachrichtenklasse
84
6.2.3 Zusatz für Subroutinen-Pools
84
6.3 Modul-Pools und Subroutinen-Pools
84
6.4 Funktionsgruppen
86
6.5 Class-Pools
87
6.6 Interface-Pools
87
6.7 Typgruppen
88
7 Modularisierung
91
7.1 Prozeduren
91
7.1.1 Parameterschnittstelle von Prozeduren
92
7.1.2 Methodenimplementierung
93
7.1.3 Funktionsbausteine
95
7.2 Dialogmodule
100
7.3 Ereignisblöcke
101
7.3.1 Programmkonstruktor
102
7.3.2 Reporting-Ereignisse
103
7.4 Quelltextmodule
105
7.4.1 Include-Programme
105
7.4.2 Makros
107
8 Eingebaute Elemente
111
8.1 Eingebaute Datentypen
111
8.1.1 Eingebaute ABAP-Typen
111
8.1.2 Generische ABAP-Typen
117
8.2 Eingebaute Datenobjekte
119
8.2.1 ABAP-Systemfelder
119
8.2.2 Konstante space
125
8.2.3 Selbstreferenz me
125
8.3 Eingebaute Funktionen
126
8.3.1 Funktionen mit einem unbenannten Argument
127
8.3.2 Funktionen mit benannten Argumenten
127
8.4 Konstruktoroperatoren für Konstruktorausdrücke
127
TEIL III Deklarative Anweisungen
129
9 Datentypen und -objekte
131
9.1 Übersicht über Typen und Objekte
131
9.1.1 Datentypen
133
9.1.2 Datenobjekte
134
9.2 Gültigkeit und Sichtbarkeit
137
9.3 Absolute Typnamen
139
9.4 Kompatible Datentypen
141
9.4.1 Nicht generische Datentypen
141
9.4.2 Generische Datentypen
142
9.4.3 Referenztypen
142
10 Datentypen und -objekte deklarieren
145
10.1 Datentypen deklarieren
145
10.1.1 Typen mit eingebauten ABAP-Typen definieren
145
10.1.2 Typen durch Bezug auf vorhandene Typen definieren
147
10.1.3 Referenztypen definieren
148
10.1.4 Strukturierte Typen definieren
150
10.1.5 Tabellentypen definieren
154
10.1.6 Ranges-Tabellentypen definieren
164
10.1.7 Zusätzliche Mandantenspalte zu einer CDS-Entität definieren
165
10.1.8 Mesh-Typen definieren
166
10.1.9 Assoziation für einen Mesh-Knoten definieren
168
10.1.10 LOB-Handle-Strukturen definieren
169
10.2 Datenobjekte deklarieren
173
10.2.1 Literale
173
10.2.2 Textsymbole
176
10.2.3 Variablen deklarieren
177
10.2.4 Konstanten deklarieren
190
10.2.5 Statische Datenobjekte in Prozeduren deklarieren
191
10.2.6 Tabellenarbeitsbereich deklarieren
192
11 Klassen und Interfaces
195
11.1 Klassen definieren
195
11.1.1 Deklarationsteil
196
11.1.2 Klasseneigenschaften festlegen
197
11.1.3 Sichtbarkeitsbereiche von Klassen
203
11.1.4 Klassenkomponenten
205
11.1.5 Implementierungsteil
206
11.1.6 Klasse bekannt machen
208
11.1.7 Lokale Freunde globaler Klassen
209
11.2 Interfaces definieren
210
11.2.1 Deklarationsteil
210
11.2.2 Interfacekomponenten
211
11.2.3 Interfaces bekannt machen
212
11.3 Komponenten deklarieren
213
11.3.1 Attribute und Datentypen
213
11.3.2 Methoden
214
11.3.3 Ereignisse
234
11.3.4 Interfacekomponenten
237
12 Feldsymbole
243
13 Inline-Deklarationen
245
13.1 Inline-Deklaration von Variablen
245
13.2 Inline-Deklaration von Feldsymbolen
246
14 Lokale Deklarationen in Ausdrücken
249
14.1 Definition einer lokalen Hilfsvariablen
250
14.2 Definition eines lokalen Feldsymbols
251
15 Typisierung
253
15.1 Syntax der Typisierung
253
15.1.1 Generische Typisierung
254
15.1.2 Vollständige Typisierung
256
15.2 Typisierung überprüfen
257
15.2.1 Allgemeine Regeln
257
15.2.2 Rückgabewerte funktionaler Methoden
259
15.2.3 Literale als Aktualparameter
259
15.2.4 Funktionen und Ausdrücke als Aktualparameter
261
TEIL IV Objekt- und Werterzeugung
265
16 Objekte erzeugen
267
16.1 Datenobjekte erzeugen
267
16.1.1 Datentyp implizit festlegen
268
16.1.2 Datentyp über eingebaute ABAP-Typen festlegen
269
16.1.3 Daten über vorhandenen Typ festlegen
270
16.1.4 Daten mit Bezug auf ein Typbeschreibungsobjekt erzeugen
271
16.1.5 Referenzvariablen erzeugen
272
16.1.6 Interne Tabellen erzeugen
273
16.1.7 Shared Object erzeugen
274
16.1.8 Behandelbare Ausnahmen
276
16.2 Instanzen von Klassen erzeugen
276
16.2.1 Klasse implizit festlegen
277
16.2.2 Klasse explizit festlegen
278
16.2.3 Shared Object erzeugen
279
16.2.4 Statische Parameterübergabe
280
16.2.5 Dynamische Parameterübergabe
281
16.2.6 Behandelbare Ausnahmen
282
16.3 Instanziierungsoperator
282
16.3.1 Initialwert für alle Typen
283
16.3.2 Einzelwert für alle Datentypen
284
16.3.3 Strukturen
285
16.3.4 Interne Tabellen
287
16.3.5 Klassen
291
17 Werte erzeugen
295
17.1 Initialwert für alle Typen
297
17.2 Strukturen
298
17.3 Interne Tabellen
299
18 Zugriff auf externen Speicher
301
18.1 Shared Objects
301
18.1.1 Gebiete
302
18.1.2 Gebietsinstanzversionen
307
18.1.3 Gebietssperren
310
18.1.4 Objekte
312
18.1.5 Gebietskonstruktorklasse
315
18.2 Parameter im User Memory
316
18.2.1 SPA-/GPA-Parameter und ABAP-Programme
317
18.2.2 SPA-/GPA-Parameter verwalten
317
18.2.3 SPA-/GPA-Parameter und Dynpro-Felder
318
18.2.4 Parameter setzen
318
18.2.5 Parameter lesen
319
TEIL V Programmeinheiten ausführen
323
19 Programme aufrufen
325
19.1 Ausführbare Programme aufrufen
326
19.1.1 Ablauf eines ausführbaren Programms
326
19.1.2 Aufruf eines ausführbaren Programms
327
19.2 Transaktionen aufrufen
341
19.2.1 Aufruf einer Transaktion mit Rückkehr zum Aufrufer
341
19.2.2 Aufruf einer Transaktion ohne Rückkehr zum Aufrufer
348
20 Verarbeitungsblöcke aufrufen
351
20.1 Prozeduren aufrufen
351
20.1.1 Interner und externer Prozeduraufruf
351
20.1.2 Methoden aufrufen
356
20.1.3 Funktionsbausteine aufrufen
372
20.1.4 Unterprogramme aufrufen
379
20.2 Ereignisbehandler aufrufen
383
20.2.1 Ereignisse auslösen
383
20.2.2 Ereignisbehandler registrieren
384
20.3 Ereignisblöcke aufrufen
388
21 Programmeinheiten verlassen
389
21.1 Programme verlassen
389
21.2 Verarbeitungsblöcke verlassen
390
21.2.1 Verarbeitungsblöcke unbedingt mit RETURN verlassen
390
21.2.2 Verarbeitungsblöcke bedingt verlassen
393
21.3 Schleifen verlassen
394
21.3.1 Schleifen unbedingt verlassen
394
21.3.2 Schleifendurchlauf unbedingt verlassen
394
21.3.3 Schleifendurchlauf bedingt verlassen
395
TEIL VI Programmablaufsteuerung
397
22 Bedingungen
399
22.1 Logische Ausdrücke
399
22.1.1 Vergleiche
400
22.1.2 Vergleichsregeln
408
22.1.3 Prädikate
423
22.1.4 Boolesche Operatoren und Klammerung
432
22.2 Logische Funktionen
436
23 Kontrollstrukturen
439
23.1 Verzweigungen
439
23.1.1 Bedingte Verzweigung
439
23.1.2 Fallunterscheidung
440
23.1.3 Fallunterscheidung für Objektreferenzvariablen
442
23.2 Schleifen
444
23.2.1 Unbedingte Schleifen
444
23.2.2 Bedingte Schleifen
445
23.2.3 Programmunterbrechung
446
23.3 Ausnahmebehandlung
446
23.3.1 Klassenbasierte Ausnahmen
447
23.3.2 Ausnahmen vor Einführung der klassenbasierten Ausnahmen
466
23.3.3 Ausnahmen in ABAP-Anweisungen
470
23.3.4 Laufzeitfehler
472
23.4 Bedingte Ausdrücke
472
23.4.1 Verzweigung
472
23.4.2 Fallunterscheidung
474
23.4.3 Ergebnis des bedingten Ausdrucks
476
23.4.4 Typinferenz für Aktualparameter
477
23.5 Iterationsausdrücke
477
23.5.1 Iterationsausdruck FOR
478
23.5.2 Bedingte Iteration
478
23.5.3 Reduzierungsoperator
480
23.5.4 Typinferenz für Aktualparameter
483
TEIL VII Interne Daten verarbeiten
485
24 Zuweisungen
487
24.1 Zuweisungs- und Konvertierungsregeln
487
24.1.1 Konvertierungsregeln für elementare Datenobjekte
488
24.1.2 Konvertierungsregeln für Strukturen
507
24.1.3 Konvertierungsregeln für interne Tabellen
511
24.1.4 Konvertierungsregeln für Meshes
512
24.1.5 Systemklassen zur Zeichensatz- und Zahlenformatkonvertierung
512
24.2 Zuweisungsoperator
512
24.2.1 Datenobjekte zuweisen
513
24.2.2 Rückgabewerte und Resultate zuweisen
515
24.2.3 Rechenausdrücke zuweisen
516
24.3 Konvertierungsoperator
518
24.3.1 Typinferenz für Aktualparameter
520
24.4 Strukturkomponenten zuweisen
521
24.4.1 Anweisung zur Zuweisung namensgleicher Strukturkomponenten
521
24.4.2 Operator zur Zuweisung namensgleicher Strukturkomponenten
526
24.4.3 Systemklasse zum Zuweisen namensgleicher Strukturkomponenten
533
24.5 Referenzen zuweisen
535
24.5.1 Referenzvariablen setzen
536
24.5.2 Zuweisungsregeln für Referenzvariablen
543
24.6 Feldsymbole setzen
549
24.6.1 Speicherbereich spezifizieren
550
24.6.2 Datentyp des zugewiesenen Speicherbereichs spezifizieren
560
24.6.3 Speicherbereich festlegen
563
24.6.4 Feldsymbol initialisieren
566
24.7 Verlustfreie Zuweisungen
566
24.7.1 Lossless-Operator
566
24.7.2 Regeln für verlustfreie Zuweisungen
568
24.8 Spezielle Zuweisungen
575
24.8.1 Mehrfachzuweisungen
575
24.8.2 Spezielle Konvertierung gepackter Zahlen
576
24.9 Initialisierungen
577
24.9.1 Datenobjekte initialisieren
577
24.9.2 Interne Tabellen initialisieren
578
25 Numerische Berechnungen
579
25.1 Arithmethische Ausdrücke
579
25.1.1 Arithmetische Operatoren
580
25.1.2 Klammerung
582
25.1.3 Rechentyp
582
25.1.4 Verlustfreie Berechnungen
586
25.2 Numerische Funktionen
587
25.2.1 Allgemeine numerische Funktionen
587
25.2.2 Ganzzahlige Potenzfunktion
589
25.2.3 Numerische Extremwertfunktionen
589
25.2.4 Gleitpunktfunktionen
590
25.2.5 Rundungsfunktionen
592
25.3 Anweisungen für numerische Berechnungen
594
25.3.1 Addition
594
25.3.2 Subtraktion
595
25.3.3 Multiplikation
595
25.3.4 Division
596
26 Zeichen- und Bytekettenverarbeitung
597
26.1 Eigenschaften der Zeichen- und Bytekettenverarbeitung
597
26.1.1 Zeichen- und Byteketten
597
26.1.2 Operanden in der Zeichen- und Bytekettenverarbeitung
597
26.1.3 Schließende Leerzeichen in der Zeichenkettenverarbeitung
598
26.2 Anweisungen für die Zeichen- und Bytekettenverarbeitung
599
26.2.1 Verketten
599
26.2.2 Durchsuchen
601
26.2.3 Ersetzen
608
26.2.4 Verschieben
612
26.2.5 Zerlegen
616
26.2.6 Verdichten
618
26.2.7 In sortierbares Format konvertieren
619
26.2.8 Überlagern
620
26.2.9 Umwandeln
621
26.2.10 Aufbereiten
622
26.2.11 Einzel-Bits setzen
640
26.2.12 Einzel-Bits lesen
641
26.3 Zeichenkettenausdrücke
642
26.3.1 Zeichenketten-Templates
643
26.3.2 Verkettungsoperator
662
26.4 Zeichenkettenfunktionen
662
26.4.1 Beschreibungsfunktionen für zeichenartige Argumente
663
26.4.2 Verarbeitungsfunktionen
666
26.4.3 Gemeinsame Parameter
678
26.5 Reguläre Ausdrücke
680
26.5.1 Syntax regulärer Ausdrücke
681
26.5.2 Sonderzeichen in regulären Ausdrücken
681
26.5.3 Reguläre Ausdrücke überprüfen
684
26.5.4 Ausnahmen in regulären Ausdrücken
685
26.6 Ausdrücke und Funktionen für die Bytekettenverarbeitung
685
26.6.1 Bit-Ausdrücke
686
26.6.2 Bytekettenfunktionen
688
27 Datums- und Zeitverarbeitung
691
27.1 Allgemeines zu Datum, Zeit, Zeitstempel und Zeitzonen
691
27.1.1 Regelwerk für Zeitzonen
691
27.1.2 Systemzeitzone und Benutzerzeitzone
693
27.2 Datums- und Zeitfelder
694
27.2.1 Zugriff auf Datums- und Zeitfelder
694
27.2.2 Gültigkeit von Datums- und Zeitfeldern
696
27.2.3 Initialwert von Datumsfeldern
697
27.3 Zeitstempel
698
27.3.1 Darstellung von Zeitstempeln
698
27.3.2 Zugriff auf Zeitstempel
698
27.3.3 Hinweise zum Umgang mit Zeitstempeln
699
27.3.4 Aktuellen Zeitstempel erstellen
699
27.3.5 Zeitstempel in lokale Zeit konvertieren
700
27.3.6 Lokale Zeit in einen Zeitstempel konvertieren
703
27.3.7 Systemklasse für Zeitstempel
705
27.4 Systemfelder für Datum und Zeit
705
28 Interne Tabellen
707
28.1 Eigenschaften interner Tabellen
707
28.1.1 Datentyp einer internen Tabelle
707
28.1.2 Tabellenart auswählen
708
28.1.3 Tabellenschlüssel
709
28.1.4 Zugriff auf interne Tabellen
717
28.2 Anweisungen für interne Tabellen
718
28.2.1 Einzelne Zeilen lesen
718
28.2.2 Schleifenverarbeitung
734
28.2.3 Zeilen einfügen
756
28.2.4 Zeilen verdichtet einfügen
762
28.2.5 Zeilen anhängen
764
28.2.6 Zeilen ändern
768
28.2.7 Zeilen löschen
776
28.2.8 Sortieren
783
28.2.9 Syntax für Komponentenangaben
789
28.2.10 Syntax für Schlüsselangaben
790
28.2.11 Zeichen- und Bytekettenverarbeitung in internen Tabellen
791
28.3 Intervall-Join interner Tabellen
796
28.4 Ausdrücke und Funktionen für interne Tabellen
800
28.4.1 Tabellenausdrücke
800
28.4.2 Tabellenfunktionen
812
28.4.3 Tabelleniterationen
814
28.4.4 Filteroperator
819
29 Meshes
823
29.1 Mesh-Pfade
823
29.1.1 Mesh-Pfade angeben
824
29.1.2 Assoziation angeben
827
29.1.3 Bedingung angeben
829
29.1.4 Ergebnis von Mesh-Pfaden
831
29.1.5 Verwendung von Mesh-Pfaden
832
29.1.6 Zeilen über Mesh-Pfad einfügen
834
30 Eigenschaften von Datenobjekten
841
30.1 Elementare Eigenschaften bestimmen
841
30.1.1 Elementare Eigenschaften beliebiger Datenobjekte
841
30.1.2 Elementare Eigenschaften interner Tabellen
847
30.1.3 Abstände von Datenobjekten
848
30.2 Run Time Type Services
849
31 Streaming
851
31.1 Klassen und Interfaces für Ströme
851
31.1.1 Klassen für Datenströme und Filterströme
851
31.1.2 Interfaces und Oberklassen
852
31.1.3 Wichtige Methoden
852
31.2 Streaming für Datenobjekte
853
31.2.1 Streaming für Strings
853
31.2.2 Streaming für interne Tabellen
854
TEIL VIII Externe Daten verarbeiten
855
32 Datenbankzugriffe
857
32.1 Relationale Datenbanken
857
32.2 Open SQL
858
32.2.1 Mandantenbehandlung
859
32.2.2 Null-Werte
859
32.2.3 Sekundäre Datenbankverbindungen
860
32.2.4 SAP-Pufferung
863
32.2.5 Releaseabhängige Modi der Syntaxprüfung
870
32.2.6 Operanden
870
32.2.7 SQL-Ausdrücke
876
32.2.8 Open SQL – SQL-Funktionen
887
32.2.9 Lesende Zugriffe
891
32.2.10 Ändernde Zugriffe
970
32.2.11 Arbeitsbereiche für Open SQL
997
32.2.12 Streaming und Lokatoren für Open SQL
998
32.2.13 Performancehinweise für Open SQL
1001
32.3 Native SQL
1002
32.3.1 Eingebettetes Native SQL
1003
32.3.2 Literale
1005
32.3.3 Host-Variablen
1005
32.3.4 Cursor-Verarbeitung
1007
32.3.5 Stored Procedures aufrufen
1008
32.3.6 Datenbankverbindung festlegen
1010
32.3.7 ABAP Database Connectivity
1013
32.3.8 ABAP Managed Database Procedures
1019
32.4 ABAP und SAP HANA
1037
32.4.1 Externe Views für SAP-HANA-Views
1039
32.4.2 Datenbankprozedur-Proxies für SQLScript-Prozeduren
1039
32.4.3 ABAP-spezifische Sitzungsvariablen in SAP HANA
1045
32.4.4 Datenalterung auf SAP HANA
1046
33 Daten-Cluster
1047
33.1 Daten-Cluster erstellen
1047
33.1.1 Daten-Cluster definieren
1048
33.1.2 Speichermedium angeben
1049
33.1.3 Tabellenstruktur
1053
33.1.4 Behandelbare Ausnahmen
1054
33.1.5 SQL-Zugriff auf INDX-artige Datenbanktabellen
1055
33.2 Daten-Cluster lesen
1056
33.2.1 Quelle angeben
1056
33.2.2 Speichermedium angeben
1058
33.2.3 Konvertierungszusätze
1060
33.2.4 Textsprachenregel
1066
33.2.5 Behandelbare Ausnahmen
1067
33.3 Inhaltsverzeichnis lesen
1067
33.4 Daten-Cluster löschen
1068
33.5 Daten-Cluster im ABAP Memory löschen
1069
33.6 Systemklasse für Daten-Cluster
1070
34 ABAP-Dateischnittstelle
1071
34.1 Physische und logische Dateinamen
1071
34.2 Berechtigungen für Dateizugriffe
1072
34.2.1 Berechtigungsprüfung im Betriebssystem
1072
34.2.2 Programmunabhängige Überprüfung von Zugriffsrechten
1072
34.2.3 Berechtigungsprüfung für spezielle Dateien
1074
34.2.4 Berechtigungsprüfung für Benutzer und Programm für Einzeldateien
1074
34.2.5 Validierung von Dateinamen
1074
34.3 Dateien sperren
1077
34.4 Datei öffnen
1078
34.4.1 Zugriffsart festlegen
1078
34.4.2 Ablageart festlegen
1079
34.4.3 Positionsangabe
1086
34.4.4 Betriebssystemabhängige Zusätze
1087
34.4.5 Fehlerbehandlung
1089
34.5 Datei schreiben
1091
34.5.1 Länge angeben
1092
34.5.2 Zeilenende-Markierung definieren
1092
34.6 Datei lesen
1093
34.6.1 Maximale Länge angeben
1095
34.6.2 Gelesene Länge feststellen
1096
34.7 Dateieigenschaften bestimmen
1096
34.7.1 Position bestimmen
1097
34.7.2 Eigenschaften auslesen
1097
34.8 Dateieigenschaften ändern
1099
34.8.1 Position festlegen
1100
34.8.2 Eigenschaften ändern
1101
34.9 Dateigröße ändern
1102
34.10 Datei schließen
1103
34.11 Datei löschen
1104
35 Datenkonsistenz
1105
35.1 Datenbank-LUW
1105
35.1.1 Datenbank-Commit
1106
35.1.2 Datenbank-Rollback
1108
35.1.3 Isolationsebenen
1108
35.1.4 Datenbank-Commits/Rollbacks auf Datenbankverbindung
1110
35.2 SAP-LUW
1111
35.2.1 Verbuchungsfunktionsbaustein registrieren
1112
35.2.2 Unterprogramme registrieren
1113
35.2.3 SAP-Commit durchführen
1114
35.2.4 SAP-Rollback duchführen
1117
35.2.5 Lokale Verbuchung einschalten
1118
35.2.6 Verbotene Anweisungen in der Verbuchung
1118
35.3 Datenbanksperren
1119
35.3.1 Datenbanksperren setzen
1119
35.3.2 Gesperrte Objekte
1120
35.3.3 Sperrmodus
1120
35.3.4 Sperrdauer
1122
35.4 SAP-Sperren
1122
35.4.1 SAP-Sperren verhängen
1122
35.4.2 SAP-Sperren aufheben
1123
36 Berechtigungen
1125
TEIL IX Benutzerdialoge
1129
37 Dynpros
1131
37.1 Benutzeroberfläche
1131
37.2 Dynpro-Felder
1133
37.3 Dynpro-Ablauf und Dynpro-Folgen
1135
37.4 Anweisungen der Dynpro-Ablauflogik
1136
37.4.1 Ereignisblöcke der Dynpro-Ablauflogik
1136
37.4.2 Aufruf von Dialogmodulen
1138
37.4.3 Steuerung von Datentransport und Ablauflogik
1141
37.4.4 Verarbeitungsketten
1146
37.4.5 Table Controls
1147
37.4.6 Subscreens, Tabstrip und Splitter Controls
1151
37.5 ABAP-Anweisungen für Dynpros
1155
37.5.1 Dynpro-Folge aufrufen
1155
37.5.2 GUI-Status setzen
1156
37.5.3 GUI-Status feststellen
1157
37.5.4 GUI-Titel setzen
1158
37.5.5 Anzeige unterdrücken
1160
37.5.6 Eigenschaften von Bildschirmelementen auslesen
1161
37.5.7 Die Struktur SCREEN
1161
37.5.8 Eigenschaften von Bildschirmelementen modifizieren
1163
37.5.9 Cursor setzen
1164
37.5.10 Cursor-Position auswerten
1166
37.5.11 Controls deklarieren
1167
37.5.12 Table Control initialisieren
1171
37.5.13 Steploop-Verarbeitung verlassen
1172
37.5.14 Eingabedaten bewahren
1172
37.5.15 Folge-Dynpro setzen
1173
37.5.16 Dynpro verlassen
1173
38 Selektionsbilder
1175
38.1 Selektionsbilder erstellen
1176
38.1.1 Selektionsbilder anlegen
1176
38.1.2 Selektionsbilder gestalten
1179
38.1.3 Elemente anderer Selektionsbilder übernehmen
1192
38.2 Parameter definieren
1196
38.2.1 Datentyp des Parameters
1198
38.2.2 Eigenschaften der Bildschirmelemente
1200
38.2.3 Eigenschaften des Wertes und der Wertübergabe
1204
38.3 Selektionskriterien definieren
1207
38.3.1 Datentyp der Spalten low und high
1210
38.3.2 Eigenschaften der Bildschirmelemente
1213
38.3.3 Eigenschaften des Wertes und der Wertübergabe
1214
38.4 Selektionsbilder aufrufen
1216
38.4.1 Aufruf über SUBMIT
1216
38.4.2 Aufruf über Reporttransaktion
1216
38.4.3 Aufruf über Dialogtransaktion
1216
38.4.4 Aufruf im Programm
1217
38.5 Selektionsbildverarbeitung
1218
38.6 Selektionsbildereignisse
1219
38.6.1 PBO
1220
38.6.2 Übergabe von Einzeldaten
1220
38.6.3 Übergabe einer Mehrfachselektion
1220
38.6.4 Blockübergabe
1221
38.6.5 Übergabe einer Auswahlknopfgruppe
1221
38.6.6 Gesamtübergabe
1221
38.6.7 POH und POV
1221
38.6.8 Exit-Kommando
1222
38.7 Freie Abgrenzungen
1223
38.7.1 Freie Abgrenzungen in logischen Datenbanken
1223
38.7.2 Freie Abgrenzungen in beliebigen Programmen
1224
39 Klassische Listen
1225
39.1 Eigenschaften klassischer Listen
1225
39.1.1 Listen im ABAP-Programm
1225
39.1.2 Grundliste
1226
39.1.3 Verzweigungslisten
1226
39.1.4 Aufbau einer Liste
1226
39.1.5 Spool-Listen
1227
39.1.6 Zeichen in Listen
1227
39.1.7 Listen und ABAP Objects
1228
39.1.8 Systemfelder
1228
39.2 Listen erstellen
1230
39.2.1 Listen schreiben
1230
39.2.2 Ausgabelänge auf Listen
1235
39.2.3 Ausgabe aufbereiten
1238
39.2.4 Ausgabe formatieren
1239
39.2.5 Linienelemente
1240
39.2.6 Listenelemente
1240
39.2.7 Leerzeile erzeugen
1244
39.2.8 Horizontale Linien erzeugen
1244
39.2.9 Listenabschnitte formatieren
1245
39.2.10 Leerzeilen steuern
1251
39.2.11 Listen-Cursor vertikal positionieren
1251
39.2.12 Listen-Cursor horizontal positionieren
1255
39.2.13 Fixbereich beim horizontalen Blättern
1256
39.2.14 Seitenumbruch und Spool-Listen-Erstellung
1257
39.2.15 Bedingter Seitenumbruch
1263
39.2.16 Variable in Listenstufe speichern
1264
39.3 Listen im Listenpuffer bearbeiten
1265
39.3.1 Listenzeilen lesen
1265
39.3.2 Listenzeilen modifizieren
1268
39.3.3 In Listen blättern
1269
39.3.4 Listeneigenschaften auslesen
1272
39.4 Listen anzeigen
1274
39.4.1 Grundliste aufrufen
1274
39.4.2 Listenanzeige verlassen
1275
39.4.3 Liste in Dialogfenster anzeigen
1276
39.4.4 GUI-Status einer Bildschirmliste
1277
39.4.5 Titel einer Bildschirmliste
1279
39.4.6 Cursor auf Liste setzen
1279
39.4.7 Liste an Cursor-Position auswerten
1281
39.5 Spooling von Listen
1283
39.5.1 Spooling ein- und ausschalten
1284
39.5.2 Spool-Listenstufen und Spool-Aufträge
1285
39.5.3 Spool-Parameter
1287
39.5.4 Spool-Steuerung
1289
39.5.5 Spooling von Bildschirmlisten
1291
39.6 Ereignisblöcke für Listen
1292
39.6.1 Ereignisse während der Listenerstellung
1292
39.6.2 Ereignisse nach Benutzeraktionen auf angezeigten Listen
1294
39.6.3 Listenereignis programmgesteuert auslösen
1296
40 Konvertierungsroutinen
1299
40.1 Ausführung von Konvertierungsroutinen
1299
40.2 Funktionsbausteine für Konvertierungsroutinen
1300
TEIL X Textablagen und Sprachumgebung
1301
41 Textablagen
1303
41.1 Texte in Text-Pools
1303
41.2 Nachrichten
1305
41.2.1 Ablage von Nachrichten
1305
41.2.2 Verhalten von Nachrichten
1306
41.2.3 Nachrichten senden
1313
42 Sprachumgebung
1323
42.1 Textumgebung
1323
42.1.1 Textumgebung setzen
1324
42.1.2 Textumgebung feststellen
1326
42.2 Formatierungseinstellungen
1326
42.2.1 Länderspezifische Formate
1327
42.2.2 Formatierungseinstellungen setzen
1329
TEIL XI Programmbearbeitung
1331
43 Programme testen und prüfen
1333
43.1 Checkpoints
1333
43.1.1 Assertions
1333
43.1.2 Breakpoints
1336
43.1.3 Logpoints
1338
43.2 Laufzeitmessung
1339
43.2.1 Relative Programmlaufzeit
1339
43.2.2 Zeitauflösung festlegen
1340
43.2.3 Laufzeitanalyse
1341
43.2.4 Klasse für Laufzeitmessungen
1342
43.3 ABAP Unit
1342
43.3.1 Testklasse definieren
1343
43.3.2 Testmethode deklarieren
1345
43.3.3 Interfaces in Testklassen implementieren
1346
43.3.4 Testseams
1348
44 Programme dynamisch bearbeiten
1355
44.1 Quelltext dynamisch bearbeiten
1356
44.1.1 Dynamischer Subroutinen-Pool
1356
44.1.2 Programm einlesen
1361
44.1.3 Syntaxprüfung
1362
44.1.4 Programm anlegen oder überschreiben
1366
44.2 Textelemente
1369
44.2.1 Text-Pool einlesen
1369
44.2.2 Text-Pool anlegen oder überschreiben
1371
TEIL XII Daten- und Kommunikationsschnittstellen
1373
45 Remote Function Call
1375
45.1 Eigenschaften des RFCs
1375
45.1.1 Schnittstelle
1375
45.1.2 Sprachelemente
1376
45.1.3 Destination
1376
45.1.4 Kontext
1378
45.1.5 Protokoll
1378
45.1.6 Ausnahmen
1378
45.1.7 Systemfelder
1379
45.1.8 Berechtigungen
1379
45.1.9 Vertrauensbeziehungen
1379
45.1.10 Dialoginteraktionen
1380
45.1.11 Einschränkungen
1381
45.2 Remote-Funktionsaufruf
1382
45.2.1 Synchroner Remote Function Call
1382
45.2.2 Asynchroner Remote Function Call
1384
45.2.3 Background Remote Function Call
1393
45.2.4 Transaktionaler Remote Function Call
1394
46 Internet Communication Framework
1397
46.1 Services
1398
46.2 Clients
1399
46.3 Sicherheit
1399
47 ABAP Channels
1401
47.1 ABAP Messaging Channels
1401
47.1.1 Messaging Channels als Repository-Objekte
1401
47.1.2 AMC-Nachrichten senden
1402
47.1.3 AMC-Nachrichten empfangen
1403
47.1.4 Sicherheit
1404
47.1.5 Ausnahmen
1404
47.1.6 Test und Analyse
1404
47.1.7 Auf Messaging Channel warten
1404
47.2 ABAP Push Channels
1406
47.2.1 ABAP Push Channels als Repository-Objekte
1407
47.2.2 APC-Handler-Klasse
1407
47.2.3 WebSocket-Client
1408
47.2.4 Verknüpfung von APC mit AMC
1408
47.2.5 Sicherheit
1409
47.2.6 Ausnahmen
1409
47.2.7 Auf Push Channel warten
1410
48 XML-Schnittstelle
1411
48.1 Klassenbibliotheken für XML
1411
48.1.1 iXML-Bibliothek
1412
48.1.2 sXML-Bibliothek
1427
48.2 Transformationen für XML
1438
48.3 XSL-Transformationen
1438
48.4 Identitäts-Transformation
1439
48.5 Simple Transformations
1440
48.6 Kanonische XML-Repräsentation
1443
48.6.1 Generelles Format
1444
48.6.2 Mapping von ABAP-Datentypen
1445
48.7 Transformation aufrufen
1459
49 JSON-Schnittstelle
1471
49.1 XML-Repräsentation von JSON
1471
49.2 Parsen und Rendern von JSON-Daten
1472
49.2.1 JSON-Daten parsen
1472
49.2.2 JSON-Daten rendern
1473
49.3 Transformationen für JSON
1473
49.3.1 Selbst geschriebene Transformationen für JSON
1474
49.3.2 Identitäts-Transformation für JSON
1474
49.4 Kanonische JSON-Repräsentation
1475
49.4.1 Generelles Format
1475
49.4.2 Mapping von ABAP-Datentypen
1476
50 OLE-Schnittstelle
1481
50.1 Automation-Objekt erzeugen
1481
50.2 Automation-Methode aufrufen
1483
50.3 Automation-Objekteigenschaften feststellen
1485
50.4 Automation-Objekteigenschaften ändern
1486
50.5 Automation-Objekt freigeben
1486
51 ABAP und Betriebssystemanweisungen
1489
51.1 Betriebssystemanweisungen des Applikationsservers
1489
51.1.1 SXPG-Framework für Betriebssystemanweisungen
1489
51.1.2 Unerwünschte Aufrufe von Betriebssystemanweisungen
1490
51.2 Betriebssystemanweisungen des Präsentationsservers
1492
51.3 Zugriff auf den Präsentationsserver
1493
TEIL XIII Erweiterungstechniken
1495
52 Quelltext erweitern
1497
52.1 Implizite Erweiterungsoptionen
1497
52.2 Explizite Erweiterungsoptionen
1498
52.2.1 Erweiterungsoption für Stelle
1498
52.2.2 Erweiterungsoption für Abschnitt
1499
52.2.3 Erweiterungsimplementierung
1501
53 BAdIs
1503
53.1 BAdI-Objekt erzeugen
1504
53.1.1 Filterwerte angeben
1506
53.1.2 Kontext angeben
1506
53.1.3 Behandelbare Ausnahmen
1507
53.2 BAdI-Methode aufrufen
1507
TEIL XIV Obsolete Anweisungen
1511
54 Obsolete Programmeigenschaften
1513
54.1 Obsoletes Abschalten der Unicode-Prüfung
1513
54.2 Obsoletes Abschalten der Festpunktarithmetik
1513
55 Obsolete Syntax
1515
55.1 Obsoleter Anweisungsaufbau
1515
55.2 Obsolete Operandenpositionen
1515
55.3 Obsolete Pseudokommentare
1516
55.3.1 Pseudokommentare für die erweiterte Programmprüfung
1516
55.3.2 Pseudokommentare für Testklassen
1517
56 Obsolete eingebaute Datenobjekte
1519
56.1 Obsolete Systemfelder
1519
56.1.1 Frühere Systemfelder
1519
56.1.2 Obsolete Systemfelder als Spool-Parameter
1521
56.2 Die eingebaute Struktur screen
1521
57 Obsolete Modularisierung
1523
57.1 Obsolete Unterprogramme
1523
57.1.1 Unterprogramm anlegen
1523
57.1.2 Unterprogramm in Teilen anlegen
1528
57.2 Obsolete Funktionsbausteinparameter
1528
57.2.1 Tabellenparameter deklarieren
1529
57.2.2 Obsolete Typisierung
1530
57.2.3 Globale Parameter
1531
57.3 Obsoletes Zwischenspeichern
1532
58 Obsolete Deklarationen
1533
58.1 Obsolete Datentypen und Datenobjekte
1533
58.1.1 Implizite Typangaben
1533
58.1.2 Unnötige Längenangaben
1533
58.1.3 Anonyme Komponenten
1534
58.2 Obsoletes Bekanntmachen und Laden
1534
58.2.1 Typgruppe laden
1534
58.2.2 Klasse oder Interface laden
1535
58.2.3 Datenobjekt bekannt machen
1536
58.3 Obsolete Schnittstellen-Arbeitsbereiche
1536
58.3.1 Gemeinsamer Datenbereich
1536
58.3.2 Zusätzlicher Tabellenarbeitsbereich
1538
58.4 Obsolete interne Tabellen
1539
58.4.1 Interne Tabellen mit Kopfzeile
1539
58.4.2 Obsolete Deklaration beliebiger Zeilentypen
1541
58.4.3 Explizite Deklaration einer Kopfzeile
1542
58.4.4 Obsolete Deklaration strukturierter Zeilentypen
1542
58.4.5 Obsolete Angabe der gesamtem Tabellenzeile
1543
58.4.6 Obsolete Deklaration von Ranges-Tabellen
1544
58.5 Obsolete Feldsymbole
1544
58.5.1 Obsolete Typsierung
1544
58.5.2 Obsoletes Casting
1545
58.6 Obsoleter Typbezug
1545
59 Obsolete Objekterzeugung
1547
60 Obsolete Aufrufe
1549
60.1 Obsolete Transaktionsaufrufe
1549
60.2 Obsoleter statischer Methodenaufruf
1550
60.3 Obsoleter Aufruf von Dialogbausteinen
1552
60.3.1 Einstiegsbild unterdrücken
1553
60.3.2 Batch-Input-Mappe
1553
60.3.3 Parameterübergabe
1554
60.4 Obsoleter Funktionsbaustein-Exit
1554
60.5 Obsolete Behandlung von Ausnahmen
1555
60.6 Obsoleter externer Unterprogrammaufruf
1556
60.7 Obsoletes Verlassen
1557
60.7.1 Obsoletes Verlassen aufgerufener Programme
1557
61 Obsolete Programmablaufsteuerung
1559
61.1 Obsolete relationale Ausdrücke
1559
61.1.1 Obsolete Vergleichsoperatoren
1559
61.1.2 Obsolete Kurzform für Selektionstabelle
1559
61.1.3 Obsoletes Überprüfen von Ausgabeparametern
1560
61.2 Obsolete Kontrollstrukturen
1560
61.2.1 Obsolete Anweisungen in der Fallunterscheidung
1561
61.2.2 Obsolete Verzweigung
1561
61.2.3 Obsolete unbedingte Schleifenverarbeitung
1562
61.2.4 Obsolete bedingte Schleifenverarbeitung
1564
61.3 Obsolete abfangbare Laufzeitfehler
1565
62 Obsolete Verarbeitung interner Daten
1567
62.1 Obsolete Zuweisungen
1567
62.1.1 Obsolete Zuweisungen von Datenobjekten und Referenzvariablen
1567
62.1.2 Obsoletes prozentuales Teilfeld
1568
62.1.3 Obsolete Konvertierung
1568
62.1.4 Obsoletes Casting
1569
62.1.5 Obsoleter dynamischer Speicherbereich
1570
62.1.6 Obsolete Initialisierung
1570
62.2 Obsolete Rechenanweisungen
1571
62.2.1 Obsolete Anweisung für Rechenausdrücke
1571
62.2.2 Obsoletes Addieren von Feldfolgen
1572
62.2.3 Obsoletes komponentenweises Rechnen
1573
62.3 Obsolete Zeichen- und Bytekettenverarbeitung
1574
62.3.1 Obsoletes Suchen
1574
62.3.2 Obsoletes Ersetzen
1577
62.3.3 Neunerkomplement eines Datums bilden
1578
62.4 Obsolete Verarbeitung interner Tabellen
1579
62.4.1 Obsolete Kurzformen
1579
62.4.2 Obsolete Schlüsselangaben
1580
62.4.3 Obsolete Angabe einer Tabellenzeile
1582
62.4.4 Obsolete Angabe eines Feldsymbols
1583
62.4.5 Obsolete Sortierung
1584
62.4.6 Obsoletes Suchen
1584
62.4.7 Obsolete Zuweisung aufbereiteter Zeichenketten
1585
62.4.8 Obsolete Kurzform einer Spezialanweisung
1587
62.4.9 Obsoletes Löschen
1589
62.5 Obsolete Extrakte
1589
62.5.1 Obsolete Deklaration von Feldgruppen
1590
62.5.2 Obsoletes Festlegen der Zeilenstruktur
1590
62.5.3 Obsoletes Füllen des Extraktdatenbestandes
1591
62.5.4 Obsoletes Sortieren des Extraktdatenbestandes
1593
62.5.5 Obsolete Angabe des Sortierschlüssels
1594
62.5.6 Obsoletes Auslesen des Extraktdatenbestandes
1595
62.5.7 Obsolete Gruppenstufenverarbeitung
1595
63 Obsolete Verarbeitung externer Daten
1599
63.1 Obsolete Datenbankzugriffe
1599
63.1.1 Obsoleter Zugriff auf CDS Views in Open SQL
1599
63.1.2 Obsolete Kurzformen in Open SQL
1599
63.1.3 Obsolete Syntaxformen in Open SQL
1600
63.1.4 Obsolete Cursor-Verarbeitung in Native SQL
1601
63.1.5 Obsolete Zugriffsanweisungen
1603
63.2 Obsolete Daten-Cluster-Zugriffe
1607
63.2.1 Obsolete Kurzformen
1607
63.2.2 Obsolete implizite Kennung
1608
63.2.3 Obsoleter impliziter Arbeitsbereich
1609
63.2.4 Obsolete Kennung
1609
63.3 Obsolete Contexte
1610
63.3.1 Pufferung von Contexten
1610
63.3.2 Instanzen von Contexten erzeugen
1611
63.3.3 Contexte mit Schlüsselwerten versorgen
1612
63.3.4 Contexte abfragen
1612
63.4 Obsolete logische Datenbanken
1614
63.4.1 Schnittstellen-Arbeitsbereiche für logische Datenbanken
1614
63.4.2 Anweisungen in logischen Datenbanken
1615
63.4.3 Obsolete Anweisungen für logische Datenbanken
1622
64 Obsolete Benutzerdialoge
1629
64.1 Obsolete Dynpro-Ablauflogik
1629
64.1.1 Datenbankzugriff
1629
64.1.2 Werteüberprüfung in der Ablauflogik
1629
64.1.3 Obsolete Subscreen-Erweiterung
1631
64.1.4 Obsolete Steploop-Verarbeitung
1631
64.2 Obsolete ABAP-Anweisungen für Dynpros
1636
64.2.1 Obsolete Kurzform für LOOP AT SCREEN
1636
64.2.2 Obsolete Kurzform für MODIFY SCREEN
1636
64.2.3 Obsolete Anweisung für Selektionsbilder
1637
64.3 Obsolete Listenverarbeitung
1637
64.3.1 Obsolete Formatierungen
1637
64.3.2 Obsolete Berechnungen
1638
64.3.3 Obsoletes Listenereignis
1640
64.3.4 Obsoletes Spooling
1640
64.4 Obsolete Texteditoraufrufe
1644
64.4.1 Texteditor für interne Tabelle aufrufen
1644
64.4.2 Quelltext-Editor für Programm aufrufen
1645
65 Obsolete Textumgebung
1647
65.1 Obsoletes Setzen der Textumgebung
1647
65.2 Obsoletes Auslesen der Textumgebung
1647
66 Obsolete Programmbearbeitung
1649
66.1 Obsoletes Ausschalten der Programmprüfung
1649
66.1.1 Obsoletes Speichern von Programmen
1650
67 Obsolete Daten- und Kommunikationsschnittstellen
1651
67.1 Obsoletes Warten
1651
67.2 Obsolete XML-Anbindung
1651
67.3 Obsolete CPI-C-Schnittstelle
1651
67.4 Obsolete JavaScript-Anbindung
1652
Anhang
1653
A Glossar
1653
B Der Autor
1731
Index
1733