Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Einleitung
33
TEIL I Die Werkzeugkiste des ABAP-Entwicklers
43
1 Die ABAP Workbench
45
1.1 Die Werkzeuge der ABAP Workbench
46
1.2 Der Object Navigator
47
1.3 Der Repository Browser
50
1.3.1 Übergeordnete Objektliste
51
1.3.2 Favoriten anlegen
51
1.4 Der ABAP Editor
52
1.4.1 Den neuen ABAP Editor aktivieren
52
1.4.2 Einen Report anlegen
53
1.4.3 Die Funktionsleiste
56
1.4.4 Die (Auto-)Vervollständigung
58
1.4.5 Der Pretty Printer
61
1.4.6 Die Musterfunktion
62
1.4.7 Der Package Builder
64
1.4.8 ABAP-Beispiele
66
2 Die ABAP Development Tools
69
2.1 SAPs Eclipse-Strategie
69
2.2 Installation und Konfiguration
71
2.2.1 Installation von Eclipse
72
2.2.2 Konfiguration des Backend-Systems
74
2.3 Ein System anbinden
75
2.4 Einen Report anlegen
76
2.5 Die Menüleiste und wichtige Tastaturkürzel
77
2.6 Der Pretty Printer und weitere Quellcodefunktionen
81
2.7 Die Musterfunktion
81
2.7.1 Muster für Funktionsbausteine
82
2.7.2 Muster für den Aufruf von Methoden
82
2.8 Der Debugger
83
2.8.1 Die Menüleiste des Debuggers
84
2.8.2 Die Variablen- und Outline-Anzeige
85
2.8.3 Breakpoints
86
2.8.4 Watchpoints
87
2.8.5 Interne Tabellen
88
2.9 Dokumentation mit ABAP Doc
89
2.9.1 Beispiel
91
2.9.2 Quick Fix
91
2.9.3 Dokumentation exportieren
92
2.9.4 Verlinkung zu Kurztexten des SAP GUI
92
2.10 Refactoring-Funktionen
93
2.10.1 Umbenennung
93
2.10.2 Eine Methode extrahieren
94
2.10.3 Quick Fix
94
3 Das ABAP Dictionary
97
3.1 Domänen
99
3.1.1 Das zweistufige Domänenprinzip
99
3.1.2 Domänen anlegen
100
3.1.3 Konvertierungsroutinen
101
3.1.4 Wertebereich einer Domäne
102
3.2 Datenelemente
104
3.2.1 Feldbezeichner
105
3.2.2 Übersetzung
105
3.2.3 Zusatzeigenschaften
107
3.3 Strukturen
107
3.3.1 Erweiterungskategorie
108
3.3.2 Referenztabellen und das Referenzfeld
109
3.4 Tabellentypen
109
3.4.1 Ranges-Tabellentypen anlegen
110
3.5 Datenbanktabellen
112
3.5.1 Datenbanktabellen anzeigen
112
3.5.2 Datenbanktabellen anlegen
112
3.5.3 Auslieferungsklasse
113
3.5.4 Tabellensicht-Pflege
114
3.5.5 Datenart
114
3.5.6 Größenkategorie
115
3.5.7 Pufferung
115
3.5.8 Felder ausprägen
116
3.5.9 Speicherart von Datenbanken mit SAP HANA
117
3.6 Indizes
118
3.7 Typgruppen
119
3.8 Views
120
3.8.1 Datenbank-View
121
3.8.2 Projektions-View
122
3.8.3 Pflege-View
123
3.8.4 Help-View
124
3.9 Pflegedialoge
124
3.9.1 Pflegedialog anlegen
124
3.9.2 Pflegedialog verbreitern
126
3.10 Suchhilfen
128
3.10.1 Elementare Suchhilfe
128
3.10.2 Sammelsuchhilfe
130
3.11 Datenbank-Utility-Tool
131
3.12 Das Sperrkonzept
132
4 Transaktionen
135
4.1 Transaktionen anlegen
136
4.1.1 Dialogtransaktion
137
4.1.2 Reporttransaktion
137
4.1.3 ABAP-Objects-Transaktion
138
4.1.4 Variantentransaktion
138
4.1.5 Parametertransaktion
139
4.2 Transaktionen mit ABAP aufrufen
140
4.2.1 Verwendung von CALL TRANSACTION
140
5 Der Function Builder
143
5.1 Der Aufbau eines Funktionsbausteins
143
5.1.1 Eigenschaften
144
5.1.2 Die Schnittstelle
144
5.1.3 Ausnahmen
146
5.1.4 Der Quellcode
146
5.2 Einen Funktionsbaustein anlegen
146
5.3 Funktionsbausteine testen
147
5.4 Funktionsgruppen
148
5.4.1 Funktionsgruppe anlegen
148
5.4.2 Aufbau einer Funktionsgruppe
149
5.4.3 Lebensdauer einer Funktionsgruppe
150
6 Der Class Builder
151
6.1 Klassen anlegen
151
6.1.1 Vererbung
152
6.1.2 Interfaces
153
6.1.3 Freunde
154
6.1.4 Attribute
155
6.1.5 Methoden
156
6.1.6 Ereignisse
159
6.1.7 Typen
160
6.1.8 Aliases
160
6.1.9 Konstruktoren anlegen
161
6.1.10 Eine Klasse testen
162
6.1.11 Klassen direkt bearbeiten
162
6.2 Ausnahmeklassen anlegen
163
6.3 Interfaces anlegen
164
TEIL II Der Kern der Sprache ABAP
165
7 Die ABAP-Grundbefehle
167
7.1 Syntaxregeln
168
7.2 Kommentare
169
7.2.1 Mehrere Zeilen kommentieren
170
7.3 Die SAP-Hilfe
170
7.4 Datendeklaration
171
7.4.1 Felder
172
7.4.2 Konstanten
175
7.4.3 Konstanten mit Inline-Deklaration
175
7.4.4 Strukturen
176
7.4.5 Zuweisung mit MOVE-CORRESPONDING
177
7.4.6 Aufzählungstypen
178
7.4.7 Feldsymbole
180
7.4.8 Unterschied zwischen TYPE und LIKE
182
7.5 Inline-Deklarationen
183
7.6 Typdefinitionen
185
7.6.1 Felder
185
7.6.2 Strukturen
186
7.7 Initialisierung
188
7.7.1 Felder initialisieren
188
7.7.2 Speicherbereich freigeben
188
7.8 Steueranweisungen
189
7.8.1 Die IF-Abfrage
189
7.8.2 Logische Ausdrücke
190
7.8.3 Die CASE-Anweisung
191
7.8.4 Die Anweisung CASE TYPE OF
192
7.8.5 Die DO-Schleife
193
7.8.6 Die WHILE-Schleife
194
7.8.7 Die CHECK-Anweisung
194
7.8.8 Die EXIT-Anweisung
195
7.8.9 Die CONTINUE-Anweisung
195
7.9 Rechenoperationen
196
7.9.1 Mathematische Funktionen
197
7.9.2 Berechnungszuweisungen
198
7.10 Ausgabeanweisungen
199
7.10.1 Die Anweisung WRITE
200
7.10.2 Das Muster für die Listenausgabe
200
7.11 Meldungen
201
7.12 Mit Zeichenketten arbeiten
203
7.12.1 Vergleich von Zeichenketten
203
7.12.2 Verkettungsoperatoren
204
7.12.3 Teilfeldzugriff
206
7.12.4 Teilzeichenketten finden
207
7.12.5 Teilzeichenketten ersetzen
209
7.12.6 Eingebaute Funktionen für Zeichenketten
211
7.12.7 Zeichenketten-Templates
212
7.13 Konstruktorausdrücke
216
7.13.1 VALUE: Erzeugung von Werten
217
7.13.2 REF: Referenzen besorgen
219
7.13.3 EXACT: Verlustfreie Zuweisung/Berechnung
220
7.13.4 CONV: Konvertierung von Werten
220
7.13.5 COND: Bedingte Ausdrücke
221
7.13.6 SWITCH: Bedingte Ausdrücke
222
7.13.7 NEW: Instanziierung
223
7.13.8 CORRESPONDING: Mapping von Strukturen und internen Tabellen
224
7.13.9 Der Zusatz LET
227
7.13.10 Der Zusatz BASE
227
7.14 Operandenpositionen
227
7.14.1 Funktionen und Ausdrücke für Lesepositionen
228
7.14.2 Ausdrücke für Schreibpositionen
229
7.15 Änderungen und Neuerungen bis ABAP 7.57
229
8 Mit internen Tabellen arbeiten
231
8.1 Tabellenarten
232
8.1.1 Standardtabellen
233
8.1.2 Sortierte Tabellen
233
8.1.3 Hash-Tabellen
234
8.2 Interne Tabellen definieren
234
8.2.1 Schlüssel definieren
235
8.2.2 Obsolet: Deklaration einer internen Tabelle mit Kopfzeile
236
8.2.3 Ranges-Tabellen definieren
237
8.3 Interne Tabellen initialisieren
238
8.4 Zeilen hinzufügen
239
8.4.1 Daten mit SELECT hinzufügen
239
8.4.2 Zeilen mit APPEND anhängen
239
8.4.3 Zeilen mit INSERT hinzufügen
241
8.4.4 Werte mit VALUE hinzufügen
242
8.4.5 Der Zusatz FOR
243
8.4.6 Gruppierungen mit FOR
245
8.4.7 Der Zusatz LINES OF
249
8.4.8 Hinzufügen mit NEW
250
8.5 Inhalt auslesen
250
8.5.1 Tabellen mit READ TABLE auslesen
251
8.5.2 Tabellenausdrücke
253
8.5.3 Tabellen mit LOOP AT auslesen
257
8.5.4 Gruppieren mit dem Zusatz GROUP BY
259
8.6 Einträge löschen
264
8.7 Inhalt ändern
265
8.7.1 Tabelle mit READ TABLE ändern
265
8.7.2 Tabelle mit Tabellenausdrücken ändern
266
8.7.3 Tabelle mit MODIFY ändern
266
8.7.4 Tabelle mit CORRESPONDING anreichern
268
8.8 Interne Tabellen kopieren
270
8.8.1 Strukturgleiche interne Tabellen kopieren
271
8.8.2 Strukturfremde interne Tabellen kopieren
271
8.9 Interne Tabellen aufbereiten
272
8.9.1 Sortieren mit SORT
272
8.9.2 Virtuelles Sortieren
273
8.9.3 Zusammenfassung mit COLLECT
276
8.9.4 Reduzierungen mit REDUCE
276
8.9.5 Filterungen mit FILTER
278
8.10 Eingebaute Funktionen für interne Tabellen
279
8.11 Änderungen und Neuerungen im Umfeld von internen Tabellen bis ABAP 7.57
281
9 Zugriff auf Datenbanken
285
9.1 Die fünf goldenen Regeln
286
9.1.1 Die goldenen Regeln für SAP HANA
287
9.2 Die Open-SQL-Anweisung SELECT
288
9.2.1 Einträge lesen
288
9.2.2 Gelesene Spalten einschränken
291
9.2.3 Zielspalten angeben
292
9.2.4 Die WHERE-Klausel
293
9.2.5 Ranges-Tabellen und Selektionsoptionen
295
9.2.6 FOR ALL ENTRIES IN: Einschränkung durch interne Tabellen
296
9.2.7 Gruppierung und Sortierung der Ergebnisse
297
9.2.8 Die FIELDS-Klausel
299
9.2.9 Host-Variablen und -ausdrücke
300
9.2.10 Inline-Deklaration
302
9.2.11 Begrenzung der Ergebnismenge mit OFFSET
303
9.2.12 JOIN: Verknüpfung
304
9.2.13 WITH: Allgemeine Tabellenausdrücke
310
9.2.14 UNION: Vereinigung
311
9.2.15 INTERSECT: Schnittmenge
312
9.2.16 EXCEPT: Ausschließen
313
9.2.17 Unterabfragen
313
9.2.18 SELECT auf interne Tabellen
314
9.3 Open-SQL-Ausdrücke
315
9.3.1 CASE-Anweisungen
315
9.3.2 Verknüpfungen von Zeichenketten mit &&
317
9.3.3 Arithmetische Ausdrücke
317
9.3.4 Typumwandlungen mit CAST
318
9.3.5 Elementare Werte
319
9.3.6 Typisierte Literale
320
9.4 Open-SQL-Funktionen
321
9.4.1 Aggregatfunktionen
321
9.4.2 Zeichenkettenfunktionen
324
9.4.3 Numerische Funktionen
326
9.4.4 Datums- und Zeitfunktionen
327
9.4.5 Coalesce-Funktion: Nullwerte ersetzen
330
9.4.6 UUID-Funktion: Erzeugung eindeutiger Schlüssel
331
9.4.7 Umwandlung von Währungen und Einheiten
331
9.5 Ändernde Open-SQL-Anweisungen
334
9.5.1 DELETE: Löschen von Einträgen
334
9.5.2 INSERT: Einträge einfügen
337
9.5.3 UPDATE: Einträge ändern
338
9.5.4 MODIFY: Einfügen oder Ändern
341
9.6 Sekundäre Datenbankverbindungen
343
9.7 Natives SQL
343
9.7.1 EXEC-SQL
344
9.7.2 ABAP Database Connectivity
345
9.8 ABAP Core Data Services (CDS)
346
9.8.1 Anlage eines CDS Views
348
9.8.2 CDS Views mit Parametern
354
9.8.3 CDS-Sprachelemente
357
9.8.4 CDS-Zugriffskontrollen
364
9.8.5 CDS-Annotationen
366
9.8.6 CDS-Assoziationen
369
9.8.7 CDS-Tabellenfunktionen
371
9.8.8 CDS-Hierarchien
374
9.9 Änderungen und Neuerungen im Umfeld von Open SQL bis ABAP 7.57
378
9.10 Änderungen und Neuerungen im Umfeld von CDS bis ABAP 7.57
381
10 Zugriff auf SAP-HANA-Entwicklungsobjekte
385
10.1 Aufruf von SAP-HANA-Views
385
10.1.1 Aufruf mit nativem SQL
386
10.1.2 Aufruf über externe Views
386
10.1.3 Externe Views anlegen
386
10.2 Aufruf von Datenbankprozeduren
388
10.2.1 Aufruf mit nativem SQL
388
10.2.2 Aufruf mit einem Datenbankprozedur-Proxy
390
10.2.3 Datenbankprozedur-Proxy anlegen
390
10.3 ABAP Managed Database Procedures (AMDP)
391
10.3.1 ABAP Managed Database Procedures anlegen
392
10.3.2 Datenbankfunktionen anlegen
394
10.3.3 BAdIs für ABAP Managed Database Procedures
395
10.4 Änderungen und Neuerungen beim Zugriff auf SAP-HANA-Entwicklungsobjekte bis ABAP 7.57
396
11 Die ABAP-Objects-Syntax
399
11.1 Grundaufbau einer Klasse
400
11.1.1 Instanziierung von Klassen
401
11.1.2 Instanziierung mit CREATE OBJECT
401
11.1.3 Instanziierung mit NEW
402
11.2 Sichtbarkeiten
403
11.2.1 Komponentensichtbarkeit
403
11.3 Datentypen und Attribute
404
11.3.1 Zugriff auf Attribute
405
11.4 Methoden
405
11.4.1 Methoden implementieren
407
11.4.2 Methoden aufrufen
408
11.5 Konstruktoren
412
11.5.1 Instanzkonstruktor
412
11.5.2 Statischer Konstruktor
413
11.6 Ereignisse
415
11.6.1 Definition von Ereignissen
415
11.6.2 Ereignisse auslösen
415
11.6.3 Definition eines Ereignisbehandlers
416
11.6.4 Ereignisbehandler registrieren
416
11.6.5 Beispiel für die Definition, das Auslösen und die Behandlung eines Ereignisses
416
11.7 Vererbung
418
11.7.1 Redefinition von Methoden
419
11.8 Klassenarten
420
11.8.1 Abstrakte und finale Klassen
420
11.8.2 Statische Klassen
421
11.8.3 Ausnahmeklassen
421
11.9 Ausnahmen für Methoden
422
11.9.1 Klassenbasierte Ausnahmen
423
11.9.2 Lokale Ausnahmen
426
11.10 Freunde
428
11.11 Interfaces
428
11.11.1 Implementierung eines Interface
429
11.11.2 Verwendung von Interfaces
431
11.12 Das ABAP-Objects-Muster
432
11.13 Casting
433
11.13.1 Casting mit dem Zuweisungsoperator
433
11.13.2 Casting mit dem Casting-Operator
434
11.13.3 Casting mit der Anweisung CAST
434
11.14 Objekttyp überprüfen
434
11.14.1 Die Anweisung IS INSTANCE OF
434
11.14.2 Die Anweisung CASE TYPE OF
435
11.15 Änderungen und Neuerungen in ABAP Objects bis ABAP 7.57
436
12 Reports und Selektionsbildschirme
437
12.1 Ereignisse eines Reports
438
12.2 Eingabeelemente
439
12.2.1 Parameter
440
12.2.2 Checkboxen
441
12.2.3 Radiobuttons
442
12.2.4 Dropdown-Liste
442
12.2.5 Selektionsoptionen
444
12.2.6 Buttons
445
12.2.7 Buttons auf der Funktionsleiste
447
12.2.8 Der Zusatz USER-COMMAND
448
12.3 Strukturierungselemente für den Selektionsbildschirm
449
12.3.1 Blöcke
449
12.3.2 Leerzeilen
450
12.3.3 Horizontale Linien
450
12.3.4 Textausgaben
450
12.3.5 Tabstrips
451
12.3.6 Modifikationsgruppen
452
12.4 Ereignisse eines Selektionsbildschirms
453
12.4.1 Selektionselemente dynamisch ausblenden
455
12.5 Textelemente
457
12.5.1 Zugriff auf Textelemente
457
12.5.2 Textsymbole
458
12.5.3 Selektionstexte
459
12.5.4 Listenüberschriften
460
12.6 Nachrichtenklassen
461
12.6.1 Nachrichtenklasse anlegen
461
12.6.2 Nachricht aufrufen
462
12.6.3 Parametrisierte Nachrichten
463
12.7 Einen Report mit ABAP aufrufen
464
12.7.1 Selektionsparameter übergeben
464
12.7.2 Selektionsparameter frei angeben
465
12.7.3 Übergabe einer Selektionstabelle
465
12.8 SPA-/GPA-Parameter
466
12.8.1 SPA-/GPA-Parameter anlegen und setzen
467
12.8.2 SPA-/GPA-Parameter auslesen
468
13 Strukturierungselemente in ABAP
469
13.1 Unterprogramme
470
13.1.1 Unterprogramm definieren
471
13.1.2 Sichtbarkeitsbereiche von Datendeklarationen
471
13.1.3 Aufruf eines Unterprogramms
472
13.1.4 Parameterübergabe
473
13.2 Makros
476
13.2.1 Makros definieren
477
13.2.2 Makros aufrufen
477
13.3 Includes
478
13.3.1 Include einbinden
478
13.3.2 Top-Include anlegen
478
13.3.3 Include anlegen
480
13.4 Funktionsbausteine
481
13.4.1 Arten von Funktionsbausteinen
481
13.4.2 Aufruf von Funktionsbausteinen
482
13.4.3 Behandlung von lokalen Ausnahmen
484
13.4.4 Behandlung von Ausnahmeklassen
485
13.4.5 Funktionsbausteine finden
485
13.5 Datenkonsistenz
487
14 Die Dynpro-Programmierung
489
14.1 Dynpros anlegen
490
14.1.1 Dynpro gestalten
491
14.1.2 Dynpro aufrufen
493
14.1.3 Zugriff auf Dynpro-Elemente
494
14.2 Ablauflogik eines Dynpros
494
14.2.1 Process Before Output (PBO)
495
14.2.2 PBO-/PAI-Module anlegen
496
14.2.3 GUI-Status
497
14.2.4 GUI-Titel
500
14.2.5 Process After Input (PAI)
501
14.3 SAP Control Framework
502
14.3.1 Custom Control anlegen
505
14.4 Pop-up-Fenster
506
14.4.1 Entscheidungen
506
14.4.2 Textanzeige
507
14.4.3 Werteabfrage
508
TEIL III Techniken zur Qualitätssicherung
511
15 Tests und Qualitätskontrolle
513
15.1 Der ABAP Debugger
513
15.1.1 Den neuen ABAP Debugger aktivieren
514
15.1.2 Den Debugger starten und beenden
514
15.1.3 Die Oberfläche
517
15.1.4 Die Werkzeuge
518
15.1.5 Steuerung des Debuggers
519
15.1.6 Schnellanzeige der Variablen
521
15.1.7 Vergleichstool
522
15.1.8 Aufrufstack
523
15.1.9 Pop-up-Fenster debuggen
524
15.1.10 Interne Tabellen
525
15.1.11 Debugger-Breakpoints
527
15.1.12 Watchpoints
530
15.1.13 Ausnahmen
531
15.2 Das Debugging-Skript
532
15.2.1 Einen Trigger für das Skript definieren
533
15.2.2 Ein Skript schreiben
534
15.2.3 Das Skript starten und beenden
536
15.2.4 Beispiel: Watchpoints für Feldsymbole
537
15.3 Der Code Inspector
538
15.3.1 Ad-hoc-Prüfung über Transaktion SE80
539
15.3.2 Prüfvariante
539
15.3.3 Objektmenge
541
15.3.4 Inspektion
541
15.3.5 Ergebnisliste
541
15.4 ABAP Unit
542
15.4.1 Grundsätzlicher Aufbau einer Testklasse
543
15.4.2 Systemeinstellungen
546
15.4.3 Assertions
547
15.4.4 Assistent für die Testklassengenerierung
548
15.4.5 Ausführen eines ABAP-Unit-Tests
550
15.4.6 Die Ergebnisanzeige
550
15.4.7 Der ABAP Unit Browser
551
15.5 Das ABAP Test Cockpit
551
15.5.1 Ausführung eines ATC-Tests
552
15.5.2 Die Transaktion ATC
553
15.5.3 Der ATC-Ergebnis-Browser
553
16 Werkzeuge und Tipps zur Performanceanalyse
555
16.1 Richtlinien für die ABAP-Entwicklung
556
16.2 Transaktion SAT: Laufzeitanalyse
558
16.2.1 Laufzeitmessung durchführen
559
16.2.2 Laufzeitmessung auswerten
560
16.2.3 Anzeige der Messungen
561
16.3 Transaktion SE30: Die alte Laufzeitanalyse
562
16.3.1 Performance-Trace im Debugger
563
16.4 SQL-Monitor
564
16.4.1 Transaktion SQLM: Den SQL-Monitor administrieren
565
16.4.2 Transaktion SQLMD: Analyse der Daten
567
16.5 SQL Performance Tuning Worklist
568
16.6 Transaktion ST05
569
16.6.1 SQL-Trace
570
16.6.2 Analyse einer SQL-Anweisung
572
16.7 Laufzeitanalyse mithilfe der ABAP-Programmierung
573
16.7.1 Zeitmessung
573
16.7.2 Fortschrittsanzeige implementieren
574
16.8 Application Log
575
16.8.1 Transaktion SLG0: Ein Application Log anlegen
576
16.8.2 Log mit Nachrichten befüllen
576
16.8.3 Log als Pop-up-Fenster darstellen
579
17 Das Transportwesen
581
17.1 Die SAP-Systemlandschaft
582
17.2 Transportaufträge
585
17.2.1 Transportauftrag anlegen
585
17.2.2 Transportauftrag freigeben und importieren
586
17.2.3 Aufgabe anlegen
590
17.2.4 Zuordnung des Transportauftrags ändern
590
17.2.5 Transportaufträge und Aufgaben löschen
592
17.2.6 Objekte in einen Transportauftrag aufnehmen
592
17.2.7 Transportaufträge verschmelzen
593
17.2.8 Transportauftrag oder Aufgabe finden
594
17.2.9 Freigabe eines Transportauftrags zurücknehmen
594
18 Die Jobverwaltung
597
18.1 Transaktion SM36: Jobs definieren
597
18.1.1 Allgemeine Angaben
598
18.1.2 Startbedingung
599
18.1.3 Schritt (Step) definieren
602
18.2 Transaktion SM37: Jobs überwachen und freigeben
604
18.2.1 Jobs freigeben
604
18.2.2 Freigabe zurücknehmen
604
18.2.3 Spool- und Job-Log anzeigen
605
18.2.4 Einplanung eines Jobs wiederholen
605
18.3 Ereignisse für Jobs
605
18.3.1 Ereignis definieren
605
18.3.2 Ereignis auslösen
606
18.4 Jobs mit ABAP definieren
606
TEIL IV Fortgeschrittene Programmiertechniken
609
19 Tabellenanzeige mit dem SAP List Viewer (ALV)
611
19.1 Die alte ALV-Anzeige
613
19.1.1 Aufbau des Grundgerüsts
614
19.1.2 Eingabefähigkeit
616
19.1.3 Funktionen
619
19.1.4 Ereignisse
621
19.1.5 Spalten bearbeiten
622
19.1.6 Zellentypen
624
19.1.7 Farbige Hervorhebung
627
19.1.8 Icons
628
19.1.9 ALV-Tabellen sortieren und gruppieren
630
19.1.10 Aggregation
631
19.1.11 Layout speichern
631
19.2 Die neue ALV-Anzeige
632
19.2.1 Aufbau des Grundgerüsts
632
19.2.2 Funktionen
634
19.2.3 Ereignisse
636
19.2.4 Spalten bearbeiten
637
19.2.5 Zellentypen
640
19.2.6 Farbige Hervorhebung
641
19.2.7 Icons
643
19.2.8 ALV-Tabellen sortieren und gruppieren
643
19.2.9 Aggregration
644
19.2.10 Layout speichern
645
19.2.11 Filter
646
19.3 SAP List Viewer mit integriertem Datenzugriff (IDA)
647
19.3.1 Aufbau des Grundgerüsts
648
19.3.2 Funktionen
649
19.3.3 Ereignisse
650
19.3.4 Spalten bearbeiten
651
19.3.5 Zellentypen
656
19.3.6 Icons
657
19.3.7 ALV-Tabelle sortieren und gruppieren
657
19.3.8 Aggregation
657
19.3.9 Layout
658
19.3.10 Filter
659
19.3.11 Textsuche
661
19.4 Mehrere ALV-Tabellen auf einer Oberfläche
662
20 SAP-Schnittstellen
665
20.1 RFC-Funktionsbausteine
666
20.1.1 Funktionsbaustein remote mit ABAP aufrufen
667
20.2 Business-Objekte und BAPIs
668
20.2.1 Business Object Repository und BAPI Explorer
672
20.2.2 BAPIs
673
20.3 Flat Files
679
20.3.1 Dateien schreiben
680
20.3.2 Dateien einlesen
682
20.3.3 Weitere nützliche Funktionen
684
20.4 Webservices (SOAP)
686
20.4.1 WSDL-Dokument
688
20.4.2 Webservices anlegen und finden
688
20.4.3 Webservice konsumieren
696
20.5 Batch Input
702
20.5.1 Aufzeichnung der Transaktion
703
20.5.2 Direkte Ausführung
705
20.5.3 Mappe erstellen
708
20.6 Einführung in die Legacy System Migration Workbench (LSMW)
709
21 SAP-Erweiterungen
711
21.1 User Exits
711
21.2 Customer Exits
714
21.3 Klassische Business Add-ins (BAdIs)
718
21.3.1 BAdIs mithilfe eines Breakpoints finden
719
21.4 Enhancement Framework
722
21.4.1 Architektur
724
21.4.2 Explizite Erweiterungspunkte
726
21.4.3 Implizite Erweiterungspunkte
729
21.4.4 Klassenerweiterungen
730
21.4.5 Funktionsbaustein-Erweiterungen
732
21.4.6 Erweiterungssektionen
733
21.4.7 Strukturerweiterungen
735
21.4.8 Suchhilfenerweiterungen
736
21.4.9 Indexerweiterungen
737
21.4.10 Einzelwerterweiterungen
738
21.4.11 Debugging von Erweiterungen
739
21.4.12 Transaktion SPAU_ENH: Abgleich von Erweiterungen im Rahmen von Updates
740
21.5 Neue Business Add-ins (BAdIs)
742
21.5.1 Aufruf
743
21.5.2 Definition aufrufen
743
21.5.3 Implementierung anlegen
743
21.5.4 Filterwerte
744
21.5.5 Menü-Exit
745
21.5.6 Dynpro-Exit
746
21.6 Switch Framework
755
21.6.1 Architektur
756
21.6.2 Schaltbare Objekte
757
21.7 Suche nach Erweiterungen
757
22 SAP-Formularentwicklung
759
22.1 Der Druckdialog
761
22.2 SAPscript
762
22.2.1 Formular erstellen
765
22.2.2 Druckprogramm erstellen
769
22.3 SAP Smart Forms
770
22.3.1 Formular erstellen
772
22.3.2 Druckprogramm erstellen
778
22.4 SAP Interactive Forms by Adobe
780
22.4.1 Formular erstellen
780
22.4.2 Druckprogramm erstellen
784
22.5 Generierung von PDFs
785
22.5.1 Generierung der internen Tabelle in SAPscript
786
22.5.2 Generierung der internen Tabelle SAP Smart Forms
786
22.5.3 Generierung der internen Tabelle in SAP Interactive Forms by Adobe
787
22.5.4 OTF in PDF konvertieren
789
23 Business Object Processing Framework
791
23.1 Aufbau von Geschäftsobjekten
794
23.1.1 Knoten
794
23.1.2 Knotenelemente
796
23.1.3 Alternative Schlüssel
798
23.1.4 Aktionen
800
23.1.5 Assoziationen
801
23.1.6 Ermittlungen
801
23.1.7 Validierungen
802
23.1.8 Abfragen
803
23.1.9 Berechtigungsprüfungen
805
23.2 Anwendung der Consumer-API
805
23.2.1 Lesen von Knoteninstanzen
806
23.2.2 Konvertieren von alternativen Schlüsseln
810
23.2.3 Modifizieren von Objekten
812
24 Fortgeschrittene Programmiertechniken
821
24.1 Object Services
822
24.1.1 Persistente Klasse anlegen
822
24.1.2 Datenbanktabelle lesen
826
24.1.3 Datenbanktabelle aktualisieren
827
24.1.4 Query anlegen
828
24.1.5 Neuen Eintrag in der Datenbanktabelle anlegen
829
24.1.6 Löschen eines neuen Eintrags
830
24.2 Mit XML und JSON arbeiten
830
24.2.1 Exkurs: XML und JSON
830
24.2.2 Konvertierung von ABAP in JSON/XML
831
24.2.3 Konvertierung von JSON/XML in ABAP
832
24.2.4 Erzeugung eines XML-Dokuments
833
24.2.5 Objekte serialisieren
834
24.3 Daten im Memory ablegen
835
24.3.1 Die Anweisungen EXPORT und IMPORT
836
24.3.2 Shared Objects
838
24.4 Parallelisierung
842
24.5 Dynamische Erzeugung von Datenobjekten
844
24.5.1 Anonymes Datenobjekt mit CREATE DATA erzeugen
844
24.5.2 Anonymes Datenobjekt mit NEW erzeugen
845
24.5.3 Beispiel: Dynamische ALV-Tabelle erzeugen
846
24.6 Runtime Type Services (RTTS)
850
24.6.1 Strukturen: Klasse CL_ABAP_STRUCTDESCR
852
24.6.2 Interne Tabellen: Klasse CL_ABAP_TABLEDESCR
853
24.6.3 Referenzdatentypen: Klasse CL_ABAP_REFDESCR
854
24.6.4 Klassen: Klasse CL_ABAP_CLASSDESCR
854
24.6.5 Interfaces: Klasse CL_ABAP_INTFDESCR
855
24.6.6 Elementare Datentypen: Klasse CL_ABAP_ELEMDESCR
856
24.6.7 Beispiel: Eine interne Tabelle nach Microsoft Excel exportieren
856
24.7 Dynamisches SQL
860
24.7.1 Dynamische Selektionsliste
860
24.7.2 Dynamische FROM-Klausel
861
24.7.3 Dynamische WHERE-Klausel
862
24.8 Das ABAP Daemon Framework (ADF)
862
24.8.1 Anlegen eines Daemons
863
24.8.2 Starten eines Daemons
864
24.8.3 Übergabe von Parametern
867
24.8.4 Dem Daemon eine Nachricht senden
868
24.8.5 Den Daemon stoppen
869
24.9 ABAP Channels
870
24.9.1 ABAP Messaging Channels
870
24.9.2 ABAP Push Channels
876
TEIL V Objektorientierte Programmierung
883
25 Grundlagen der Objektorientierung
885
25.1 Einführung für ABAP-Entwickler
885
25.2 Klassen und Objekte
891
25.2.1 Statische Klassen
893
25.3 Instanziierung
894
25.3.1 Konstruktoren
896
25.4 Datenkapselung
897
25.4.1 Freunde
899
25.5 Ereignisse
900
25.6 Vererbung
902
25.6.1 Redefinition
904
25.6.2 Klassenhierarchien
905
25.7 Klassenarten
907
25.7.1 Abstrakte Klassen
908
25.7.2 Finale Klassen
908
25.8 Interfaces
908
25.9 Polymorphie
912
25.10 Zusammenfassung
914
26 Unified Modeling Language (UML)
917
26.1 Anwendungsfalldiagramm
918
26.1.1 Akteure
919
26.1.2 Anwendungsfälle
920
26.1.3 Beziehungen
920
26.1.4 Beispieldiagramm
922
26.1.5 Textuelle Beschreibung
923
26.2 Klassendiagramm
923
26.2.1 Attribute
926
26.2.2 Operationen
926
26.2.3 Beziehungen zwischen Klassen
927
26.2.4 Vom Anwendungsfall zum Klassendiagramm
929
26.2.5 Beispieldiagramm
930
27 Anwendungsentwicklung – wo fange ich an?
933
27.1 Anforderungsermittlung
935
27.1.1 Ermittlung
936
27.1.2 Spezifikation
937
27.1.3 Verhaltensmodellierung
939
27.1.4 Validierung
940
27.2 Analyse
940
27.2.1 Die Klassenmodellierung
941
27.2.2 Verhaltensmodellierung
943
27.2.3 Verifikation
944
27.3 Entwurf
944
28 Entwurfsmuster
947
28.1 Singleton
948
28.2 Fabrikmethode
950
28.2.1 Factory-Methode beim SAP List Viewer
953
28.3 Model View Controller
955
28.3.1 Model-Klasse
958
28.3.2 View-Klasse
959
28.3.3 Controller-Klasse
960
28.3.4 Hauptprogramm
961
28.3.5 Ersetzung des Views
961
28.4 Fassade
963
28.5 Observer
964
28.5.1 Haupttabelle
967
28.5.2 Abstrakte Detailtabelle
968
28.5.3 Konkrete Detailtabelle
968
28.5.4 Hauptprogramm
969
28.6 Objektorientierte Reports
971
TEIL VI Ein Blick über den Tellerrand: Was Sie als ABAP-Entwickler sonst noch kennen sollten
975
29 ABAP-Programmiermodelle
977
29.1 Das klassische Programmiermodell
980
29.2 Die Innovation für die Zukunft
982
29.3 Das ABAP-Programmiermodell für SAP Fiori
983
29.4 Das ABAP RESTful Application Programming Model
987
30 SAP HANA
999
30.1 Überblick
1000
30.2 Architektur
1001
30.2.1 Die In-Memory-Technologie
1002
30.2.2 Spaltenorientierte Speicherung
1002
30.2.3 Wertekomprimierung
1004
30.3 Migration auf SAP HANA
1005
30.4 SAP-HANA-Objekte
1006
30.4.1 Attribute View
1007
30.4.2 Analytic View
1008
30.4.3 Calculation View
1009
30.4.4 Stored Procedures
1010
30.5 Volltextsuchen
1010
30.5.1 Volltextindex anlegen
1011
30.5.2 Fuzzy-Suche
1013
30.5.3 Linguistische Suche
1014
30.5.4 Eingabefelder für die Vorschlagssuche
1015
31 SAPUI5, SAP Fiori und SAP Gateway
1019
31.1 SAPUI5
1020
31.2 SAP Fiori
1022
31.2.1 SAP Fiori Launchpad
1022
31.3 OData
1024
31.3.1 Beispiel
1025
31.3.2 Metadatendokument
1026
31.3.3 Aufbau eines OData-Service
1027
31.3.4 Abfrageoptionen
1028
31.4 SAP Gateway
1030
31.4.1 Embedded Deployment
1030
31.4.2 Zentrales Deployment ohne Entwicklung
1031
31.4.3 Zentrales Deployment mit Entwicklung
1031
31.5 Entwicklung eines OData-Service
1032
31.5.1 Entwicklung
1033
31.5.2 Veröffentlichung
1040
31.5.3 Testen
1042
31.5.4 Fehleranalyse
1044
31.6 Überblick über die Implementierung der CRUDQ-Methoden
1044
31.6.1 Auslesen der Schlüsselfelder
1044
31.6.2 Auslesen des HTTP-Request-Bodys
1045
31.6.3 Abfrageoptionen $skip und $top
1046
31.6.4 Abfrageoption $count
1047
31.6.5 Abfrageoption $inline-count
1047
31.6.6 Abfrageoption $filter
1048
31.6.7 Abfrageoption $select
1049
31.6.8 Abfrageoption $orderby
1049
31.6.9 Meldungen ausgeben
1050
32 Andere SAP-Webtechnologien
1053
32.1 Business Server Pages (BSP)
1054
32.1.1 BSP-Anwendung mit HTML anlegen
1056
32.1.2 BSP-Anwendung mit HTMLB anlegen
1059
32.2 Web Dynpro ABAP
1061
32.2.1 Web-Dynpro-Component anlegen
1063
32.2.2 Ausgabetabelle definieren
1065
32.2.3 Methode zur Datenselektion implementieren
1068
32.2.4 Context mit View verbinden
1072
32.2.5 Ergebnistabelle anlegen
1075
32.2.6 Logik für den Button implementieren
1076
32.2.7 Web-Dynpro-Anwendung anlegen
1078
32.3 Internet Communication Framework
1079
Anhang
1083
A Das SAP-Flugdatenmodell
1085
B Übersicht der ABAP-Anweisungen
1087
C Eingebaute Datentypen
1097
D Transaktionscodes
1099
E Wichtige Systemfelder
1103
F Technische Tabellen
1105
G Nützliche Funktionsbausteine
1107
H Klassen
1111
I Namenskonventionen für die Programmierung
1113
J Systemglossar und Suche nach fremdsprachigen SAP-Begriffen
1117
K Glossar
1119
Der Autor
1125
Index
1127