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 Strukturen
176
7.4.4 Zuweisung mit MOVE-CORRESPONDING
177
7.4.5 Aufzählungstypen
178
7.4.6 Feldsymbole
180
7.4.7 Unterschied zwischen TYPE und LIKE
182
7.5 Inline-Deklarationen
183
7.6 Typdefinitionen
184
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
188
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.54
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 Meshes
281
8.12 Änderungen und Neuerungen im Umfeld von internen Tabellen bis ABAP 7.54
285
9 Zugriff auf Datenbanken
287
9.1 Die fünf goldenen Regeln
288
9.1.1 Die goldenen Regeln für SAP HANA
289
9.2 Die Open-SQL-Anweisung SELECT
290
9.2.1 Einträge lesen
290
9.2.2 Gelesene Spalten einschränken
293
9.2.3 Zielspalten angeben
294
9.2.4 Die WHERE-Klausel
295
9.2.5 Ranges-Tabellen und Selektionsoptionen
297
9.2.6 FOR ALL ENTRIES IN: Einschränkung durch interne Tabellen
298
9.2.7 Gruppierung und Sortierung der Ergebnisse
299
9.2.8 Die FIELDS-Klausel
301
9.2.9 Host-Variablen und -ausdrücke
302
9.2.10 Inline-Deklaration
304
9.2.11 Begrenzung der Ergebnismenge mit OFFSET
305
9.2.12 JOIN: Verknüpfung
306
9.2.13 WITH: Allgemeine Tabellenausdrücke
312
9.2.14 UNION: Vereinigung
313
9.2.15 Unterabfragen
314
9.2.16 SELECT auf interne Tabellen
315
9.3 Open-SQL-Ausdrücke
315
9.3.1 CASE-Anweisungen
316
9.3.2 Verknüpfungen von Zeichenketten mit &&
317
9.3.3 Arithmetische Ausdrücke
318
9.3.4 Typumwandlungen mit CAST
318
9.3.5 Elementare Werte
319
9.4 Open-SQL-Funktionen
320
9.4.1 Aggregatfunktionen
320
9.4.2 INTO TABLE @DATA(lt_ergebnis).Zeichenkettenfunktionen
322
9.4.3 Numerische Funktionen
324
9.4.4 Datumsfunktionen
325
9.4.5 Coalesce-Funktion: Nullwerte ersetzen
326
9.4.6 UUID-Funktion: Erzeugung eindeutiger Schlüssel
327
9.5 Ändernde Open-SQL-Anweisungen
327
9.5.1 DELETE: Löschen von Einträgen
328
9.5.2 INSERT: Einträge einfügen
330
9.5.3 UPDATE: Einträge ändern
332
9.5.4 MODIFY: Einfügen oder Ändern
334
9.6 Sekundäre Datenbankverbindungen
335
9.7 Natives SQL
335
9.7.1 EXEC-SQL
336
9.7.2 ABAP Database Connectivity
337
9.8 ABAP Core Data Services (CDS)
339
9.8.1 Anlage eines CDS Views
341
9.8.2 CDS Views mit Parametern
347
9.8.3 CDS-Sprachelemente
349
9.8.4 CDS-Zugriffskontrollen
356
9.8.5 CDS-Annotationen
358
9.8.6 CDS-Assoziationen
361
9.8.7 CDS-Tabellenfunktionen
363
9.8.8 CDS-Hierarchien
366
9.9 Änderungen und Neuerungen im Umfeld von Open SQL bis ABAP 7.54
370
9.10 Änderungen und Neuerungen im Umfeld von CDS bis ABAP 7.54
372
10 Zugriff auf SAP-HANA-Entwicklungsobjekte
375
10.1 Aufruf von SAP-HANA-Views
375
10.1.1 Aufruf mit nativem SQL
376
10.1.2 Aufruf über externe Views
376
10.1.3 Externe Views anlegen
376
10.2 Aufruf von Datenbankprozeduren
378
10.2.1 Aufruf mit nativem SQL
378
10.2.2 Aufruf mit einem Datenbankprozedur-Proxy
380
10.2.3 Datenbankprozedur-Proxy anlegen
380
10.3 ABAP Managed Database Procedures (AMDP)
381
10.3.1 ABAP Managed Database Procedures anlegen
382
10.3.2 Datenbankfunktionen anlegen
384
10.3.3 BAdIs für ABAP Managed Database Procedures
385
10.4 Änderungen und Neuerungen beim Zugriff auf SAP-HANA-Entwicklungsobjekte bis ABAP 7.54
386
11 Die ABAP-Objects-Syntax
389
11.1 Grundaufbau einer Klasse
390
11.1.1 Instanziierung von Klassen
391
11.1.2 Instanziierung mit CREATE OBJECT
391
11.1.3 Instanziierung mit NEW
392
11.2 Sichtbarkeiten
393
11.2.1 Komponentensichtbarkeit
393
11.3 Datentypen und Attribute
394
11.3.1 Zugriff auf Attribute
395
11.4 Methoden
395
11.4.1 Methoden implementieren
397
11.4.2 Methoden aufrufen
398
11.5 Konstruktoren
402
11.5.1 Instanzkonstruktor
402
11.5.2 Statischer Konstruktor
403
11.6 Ereignisse
405
11.6.1 Definition von Ereignissen
405
11.6.2 Ereignisse auslösen
405
11.6.3 Definition eines Ereignisbehandlers
406
11.6.4 Ereignisbehandler registrieren
406
11.6.5 Beispiel für die Definition, das Auslösen und die Behandlung eines Ereignisses
406
11.7 Vererbung
408
11.7.1 Redefinition von Methoden
409
11.8 Klassenarten
410
11.8.1 Abstrakte und finale Klassen
410
11.8.2 Statische Klassen
411
11.8.3 Ausnahmeklassen
411
11.9 Ausnahmen für Methoden
412
11.9.1 Klassenbasierte Ausnahmen
413
11.9.2 Lokale Ausnahmen
416
11.10 Freunde
418
11.11 Interfaces
418
11.11.1 Implementierung eines Interface
419
11.11.2 Verwendung von Interfaces
421
11.12 Das ABAP-Objects-Muster
422
11.13 Casting
423
11.13.1 Casting mit dem Zuweisungsoperator
423
11.13.2 Casting mit dem Casting-Operator
424
11.13.3 Casting mit der Anweisung CAST
424
11.14 Objekttyp überprüfen
424
11.14.1 Die Anweisung IS INSTANCE OF
424
11.14.2 Die Anweisung CASE TYPE OF
425
11.15 Änderungen und Neuerungen in ABAP Objects bis ABAP 7.54
426
12 Reports und Selektionsbildschirme
427
12.1 Ereignisse eines Reports
428
12.2 Eingabeelemente
429
12.2.1 Parameter
430
12.2.2 Checkboxen
431
12.2.3 Radiobuttons
432
12.2.4 Dropdown-Liste
432
12.2.5 Selektionsoptionen
434
12.2.6 Buttons
435
12.2.7 Buttons auf der Funktionsleiste
437
12.2.8 Der Zusatz USER-COMMAND
438
12.3 Strukturierungselemente für den Selektionsbildschirm
439
12.3.1 Blöcke
439
12.3.2 Leerzeilen
440
12.3.3 Horizontale Linien
440
12.3.4 Textausgaben
440
12.3.5 Tabstrips
441
12.3.6 Modifikationsgruppen
442
12.4 Ereignisse eines Selektionsbildschirms
443
12.4.1 Selektionselemente dynamisch ausblenden
445
12.5 Textelemente
447
12.5.1 Zugriff auf Textelemente
447
12.5.2 Textsymbole
448
12.5.3 Selektionstexte
449
12.5.4 Listenüberschriften
450
12.6 Nachrichtenklassen
451
12.6.1 Nachrichtenklasse anlegen
451
12.6.2 Nachricht aufrufen
452
12.6.3 Parametrisierte Nachrichten
453
12.7 Einen Report mit ABAP aufrufen
454
12.7.1 Selektionsparameter übergeben
454
12.7.2 Selektionsparameter frei angeben
455
12.7.3 Übergabe einer Selektionstabelle
455
12.8 SPA-/GPA-Parameter
456
12.8.1 SPA-/GPA-Parameter anlegen und setzen
457
12.8.2 SPA-/GPA-Parameter auslesen
458
13 Strukturierungselemente in ABAP
459
13.1 Unterprogramme
460
13.1.1 Unterprogramm definieren
461
13.1.2 Sichtbarkeitsbereiche von Datendeklarationen
461
13.1.3 Aufruf eines Unterprogramms
462
13.1.4 Parameterübergabe
463
13.2 Makros
466
13.2.1 Makros definieren
467
13.2.2 Makros aufrufen
467
13.3 Includes
468
13.3.1 Include einbinden
468
13.3.2 Top-Include anlegen
468
13.3.3 Include anlegen
470
13.4 Funktionsbausteine
471
13.4.1 Arten von Funktionsbausteinen
471
13.4.2 Aufruf von Funktionsbausteinen
472
13.4.3 Behandlung von lokalen Ausnahmen
474
13.4.4 Behandlung von Ausnahmeklassen
475
13.4.5 Funktionsbausteine finden
475
13.5 Datenkonsistenz
477
14 Die Dynpro-Programmierung
479
14.1 Dynpros anlegen
480
14.1.1 Dynpro gestalten
481
14.1.2 Dynpro aufrufen
483
14.1.3 Zugriff auf Dynpro-Elemente
484
14.2 Ablauflogik eines Dynpros
484
14.2.1 Process Before Output (PBO)
485
14.2.2 PBO-/PAI-Module anlegen
486
14.2.3 GUI-Status
487
14.2.4 GUI-Titel
490
14.2.5 Process After Input (PAI)
491
14.3 SAP Control Framework
492
14.3.1 Custom Control anlegen
495
14.4 Pop-up-Fenster
496
14.4.1 Entscheidungen
496
14.4.2 Textanzeige
497
14.4.3 Werteabfrage
498
Teil III Techniken zur Qualitätssicherung
501
15 Tests und Qualitätskontrolle
503
15.1 Der ABAP Debugger
503
15.1.1 Den neuen ABAP Debugger aktivieren
504
15.1.2 Den Debugger starten und beenden
504
15.1.3 Die Oberfläche
507
15.1.4 Die Werkzeuge
508
15.1.5 Steuerung des Debuggers
509
15.1.6 Schnellanzeige der Variablen
511
15.1.7 Vergleichstool
512
15.1.8 Aufrufstack
513
15.1.9 Pop-up-Fenster debuggen
514
15.1.10 Interne Tabellen
515
15.1.11 Debugger-Breakpoints
517
15.1.12 Watchpoints
520
15.1.13 Ausnahmen
521
15.2 Das Debugging-Skript
522
15.2.1 Einen Trigger für das Skript definieren
523
15.2.2 Ein Skript schreiben
524
15.2.3 Das Skript starten und beenden
526
15.2.4 Beispiel: Watchpoints für Feldsymbole
527
15.3 Der Code Inspector
528
15.3.1 Ad-hoc-Prüfung über Transaktion SE80
529
15.3.2 Prüfvariante
529
15.3.3 Objektmenge
531
15.3.4 Inspektion
531
15.3.5 Ergebnisliste
531
15.4 ABAP Unit
532
15.4.1 Grundsätzlicher Aufbau einer Testklasse
533
15.4.2 Systemeinstellungen
536
15.4.3 Assertions
537
15.4.4 Assistent für die Testklassengenerierung
538
15.4.5 Ausführen eines ABAP-Unit-Tests
540
15.4.6 Die Ergebnisanzeige
540
15.4.7 Der ABAP Unit Browser
541
15.5 Das ABAP Test Cockpit
541
15.5.1 Ausführung eines ATC-Tests
542
15.5.2 Die Transaktion ATC
543
15.5.3 Der ATC-Ergebnis-Browser
543
16 Werkzeuge und Tipps zur Performanceanalyse
545
16.1 Richtlinien für die ABAP-Entwicklung
546
16.2 Transaktion SAT: Laufzeitanalyse
548
16.2.1 Laufzeitmessung durchführen
549
16.2.2 Laufzeitmessung auswerten
550
16.2.3 Anzeige der Messungen
551
16.3 Transaktion SE30: Die alte Laufzeitanalyse
552
16.3.1 Performance-Trace im Debugger
553
16.4 SQL-Monitor
554
16.4.1 Transaktion SQLM: Den SQL-Monitor administrieren
555
16.4.2 Transaktion SQLMD: Analyse der Daten
557
16.5 SQL Performance Tuning Worklist
558
16.6 Transaktion ST05
559
16.6.1 SQL-Trace
560
16.6.2 Analyse einer SQL-Anweisung
562
16.7 Laufzeitanalyse mithilfe der ABAP-Programmierung
563
16.7.1 Zeitmessung
563
16.7.2 Fortschrittsanzeige implementieren
564
16.8 Application Log
565
16.8.1 Transaktion SLG0: Ein Application Log anlegen
566
16.8.2 Log mit Nachrichten befüllen
566
16.8.3 Log als Pop-up-Fenster darstellen
569
17 Das Transportwesen
571
17.1 Die SAP-Systemlandschaft
572
17.2 Transportaufträge
575
17.2.1 Transportauftrag anlegen
575
17.2.2 Transportauftrag freigeben und importieren
576
17.2.3 Aufgabe anlegen
580
17.2.4 Zuordnung des Transportauftrags ändern
580
17.2.5 Transportaufträge und Aufgaben löschen
582
17.2.6 Objekte in einen Transportauftrag aufnehmen
582
17.2.7 Transportaufträge verschmelzen
583
17.2.8 Transportauftrag oder Aufgabe finden
584
17.2.9 Freigabe eines Transportauftrags zurücknehmen
584
18 Die Jobverwaltung
587
18.1 Transaktion SM36: Jobs definieren
587
18.1.1 Allgemeine Angaben
588
18.1.2 Startbedingung
589
18.1.3 Schritt (Step) definieren
592
18.2 Transaktion SM37: Jobs überwachen und freigeben
594
18.2.1 Jobs freigeben
594
18.2.2 Freigabe zurücknehmen
594
18.2.3 Spool- und Job-Log anzeigen
595
18.2.4 Einplanung eines Jobs wiederholen
595
18.3 Ereignisse für Jobs
595
18.3.1 Ereignis definieren
595
18.3.2 Ereignis auslösen
596
18.4 Jobs mit ABAP definieren
596
Teil IV Fortgeschrittene Programmiertechniken
599
19 Tabellenanzeige mit dem SAP List Viewer (ALV)
601
19.1 Die alte ALV-Anzeige
603
19.1.1 Aufbau des Grundgerüsts
604
19.1.2 Eingabefähigkeit
606
19.1.3 Funktionen
609
19.1.4 Ereignisse
611
19.1.5 Spalten bearbeiten
612
19.1.6 Zellentypen
614
19.1.7 Farbige Hervorhebung
617
19.1.8 Icons
618
19.1.9 ALV-Tabellen sortieren und gruppieren
620
19.1.10 Aggregation
621
19.1.11 Layout speichern
621
19.2 Die neue ALV-Anzeige
622
19.2.1 Aufbau des Grundgerüsts
622
19.2.2 Funktionen
624
19.2.3 Ereignisse
626
19.2.4 Spalten bearbeiten
627
19.2.5 Zellentypen
630
19.2.6 Farbige Hervorhebung
631
19.2.7 Icons
633
19.2.8 ALV-Tabellen sortieren und gruppieren
633
19.2.9 Aggregration
634
19.2.10 Layout speichern
635
19.2.11 Filter
636
19.3 SAP List Viewer mit integriertem Datenzugriff (IDA)
637
19.3.1 Aufbau des Grundgerüsts
638
19.3.2 Funktionen
639
19.3.3 Ereignisse
640
19.3.4 Spalten bearbeiten
641
19.3.5 Zellentypen
646
19.3.6 Icons
647
19.3.7 ALV-Tabelle sortieren und gruppieren
647
19.3.8 Aggregation
647
19.3.9 Layout
648
19.3.10 Filter
649
19.3.11 Textsuche
651
19.4 Mehrere ALV-Tabellen auf einer Oberfläche
652
20 SAP-Schnittstellen
655
20.1 RFC-Funktionsbausteine
656
20.1.1 Funktionsbaustein remote mit ABAP aufrufen
657
20.2 Business-Objekte und BAPIs
658
20.2.1 Business Object Repository und BAPI Explorer
662
20.2.2 BAPIs
663
20.3 Flat Files
669
20.3.1 Dateien schreiben
670
20.3.2 Dateien einlesen
672
20.3.3 Weitere nützliche Funktionen
674
20.4 Webservices (SOAP)
676
20.4.1 WSDL-Dokument
678
20.4.2 Webservices anlegen und finden
678
20.4.3 Webservice konsumieren
686
20.5 Batch Input
692
20.5.1 Aufzeichnung der Transaktion
693
20.5.2 Direkte Ausführung
695
20.5.3 Mappe erstellen
698
20.6 Einführung in die Legacy System Migration Workbench (LSMW)
699
21 SAP-Erweiterungen
701
21.1 User Exits
701
21.2 Customer Exits
704
21.3 Klassische Business Add-ins (BAdIs)
708
21.3.1 BAdIs mithilfe eines Breakpoints finden
709
21.4 Enhancement Framework
712
21.4.1 Architektur
714
21.4.2 Explizite Erweiterungspunkte
716
21.4.3 Implizite Erweiterungspunkte
719
21.4.4 Klassenerweiterungen
720
21.4.5 Funktionsbaustein-Erweiterungen
722
21.4.6 Erweiterungssektionen
723
21.4.7 Strukturerweiterungen
725
21.4.8 Suchhilfenerweiterungen
726
21.4.9 Indexerweiterungen
727
21.4.10 Einzelwerterweiterungen
728
21.4.11 Debugging von Erweiterungen
729
21.4.12 Transaktion SPAU_ENH: Abgleich von Erweiterungen im Rahmen von Updates
730
21.5 Neue Business Add-ins (BAdIs)
732
21.5.1 Aufruf
733
21.5.2 Definition aufrufen
733
21.5.3 Implementierung anlegen
733
21.5.4 Filterwerte
734
21.5.5 Menü-Exit
735
21.5.6 Dynpro-Exit
736
21.6 Switch Framework
745
21.6.1 Architektur
746
21.6.2 Schaltbare Objekte
747
21.7 Suche nach Erweiterungen
747
22 SAP-Formularentwicklung
749
22.1 Der Druckdialog
751
22.2 SAPscript
752
22.2.1 Formular erstellen
755
22.2.2 Druckprogramm erstellen
759
22.3 SAP Smart Forms
760
22.3.1 Formular erstellen
762
22.3.2 Druckprogramm erstellen
768
22.4 SAP Interactive Forms by Adobe
770
22.4.1 Formular erstellen
770
22.4.2 Druckprogramm erstellen
774
22.5 Generierung von PDFs
775
22.5.1 Generierung der internen Tabelle in SAPscript
776
22.5.2 Generierung der internen Tabelle SAP Smart Forms
776
22.5.3 Generierung der internen Tabelle in SAP Interactive Forms by Adobe
777
22.5.4 OTF in PDF konvertieren
779
23 Business Object Processing Framework
781
23.1 Aufbau von Geschäftsobjekten
784
23.1.1 Knoten
784
23.1.2 Knotenelemente
786
23.1.3 Alternative Schlüssel
788
23.1.4 Aktionen
790
23.1.5 Assoziationen
791
23.1.6 Ermittlungen
791
23.1.7 Validierungen
792
23.1.8 Abfragen
793
23.1.9 Berechtigungsprüfungen
795
23.2 Anwendung der Consumer-API
795
23.2.1 Lesen von Knoteninstanzen
796
23.2.2 Konvertieren von alternativen Schlüsseln
800
23.2.3 Modifizieren von Objekten
802
24 Fortgeschrittene Programmiertechniken
811
24.1 Object Services
812
24.1.1 Persistente Klasse anlegen
812
24.1.2 Datenbanktabelle lesen
816
24.1.3 Datenbanktabelle aktualisieren
817
24.1.4 Query anlegen
818
24.1.5 Neuen Eintrag in der Datenbanktabelle anlegen
819
24.1.6 Löschen eines neuen Eintrags
820
24.2 Mit XML und JSON arbeiten
820
24.2.1 Exkurs: XML und JSON
820
24.2.2 Konvertierung von ABAP in JSON/XML
821
24.2.3 Konvertierung von JSON/XML in ABAP
822
24.2.4 Erzeugung eines XML-Dokuments
823
24.2.5 Objekte serialisieren
824
24.3 Daten im Memory ablegen
825
24.3.1 Die Anweisungen EXPORT und IMPORT
826
24.3.2 Shared Objects
828
24.4 Parallelisierung
832
24.5 Dynamische Erzeugung von Datenobjekten
834
24.5.1 Anonymes Datenobjekt mit CREATE DATA erzeugen
834
24.5.2 Anonymes Datenobjekt mit NEW erzeugen
835
24.5.3 Beispiel: Dynamische ALV-Tabelle erzeugen
836
24.6 Runtime Type Services (RTTS)
840
24.6.1 Strukturen: Klasse CL_ABAP_STRUCTDESCR
842
24.6.2 Interne Tabellen: Klasse CL_ABAP_TABLEDESCR
843
24.6.3 Referenzdatentypen: Klasse CL_ABAP_REFDESCR
844
24.6.4 Klassen: Klasse CL_ABAP_CLASSDESCR
844
24.6.5 Interfaces: Klasse CL_ABAP_INTFDESCR
845
24.6.6 Elementare Datentypen: Klasse CL_ABAP_ELEMDESCR
846
24.6.7 Beispiel: Eine interne Tabelle nach Microsoft Excel exportieren
846
24.7 Dynamisches SQL
850
24.7.1 Dynamische Selektionsliste
850
24.7.2 Dynamische FROM-Klausel
851
24.7.3 Dynamische WHERE-Klausel
852
24.8 Das ABAP Daemon Framework (ADF)
852
24.8.1 Anlegen eines Daemons
853
24.8.2 Starten eines Daemons
854
24.8.3 Übergabe von Parametern
857
24.8.4 Dem Daemon eine Nachricht senden
858
24.8.5 Den Daemon stoppen
859
24.9 ABAP Channels
860
24.9.1 ABAP Messaging Channels
860
24.9.2 ABAP Push Channels
866
Teil V Objektorientierte Programmierung
873
25 Grundlagen der Objektorientierung
875
25.1 Einführung für ABAP-Entwickler
875
25.2 Klassen und Objekte
881
25.2.1 Statische Klassen
883
25.3 Instanziierung
884
25.3.1 Konstruktoren
886
25.4 Datenkapselung
887
25.4.1 Freunde
889
25.5 Ereignisse
890
25.6 Vererbung
892
25.6.1 Redefinition
894
25.6.2 Klassenhierarchien
895
25.7 Klassenarten
897
25.7.1 Abstrakte Klassen
898
25.7.2 Finale Klassen
898
25.8 Interfaces
898
25.9 Polymorphie
902
25.10 Zusammenfassung
904
26 Unified Modeling Language (UML)
907
26.1 Anwendungsfalldiagramm
908
26.1.1 Akteure
909
26.1.2 Anwendungsfälle
910
26.1.3 Beziehungen
910
26.1.4 Beispieldiagramm
912
26.1.5 Textuelle Beschreibung
913
26.2 Klassendiagramm
913
26.2.1 Attribute
916
26.2.2 Operationen
916
26.2.3 Beziehungen zwischen Klassen
917
26.2.4 Vom Anwendungsfall zum Klassendiagramm
919
26.2.5 Beispieldiagramm
920
27 Anwendungsentwicklung – wo fange ich an?
923
27.1 Anforderungsermittlung
925
27.1.1 Ermittlung
926
27.1.2 Spezifikation
927
27.1.3 Verhaltensmodellierung
929
27.1.4 Validierung
930
27.2 Analyse
930
27.2.1 Die Klassenmodellierung
931
27.2.2 Verhaltensmodellierung
933
27.2.3 Verifikation
934
27.3 Entwurf
934
28 Entwurfsmuster
937
28.1 Singleton
938
28.2 Fabrikmethode
940
28.2.1 Factory-Methode beim SAP List Viewer
943
28.3 Model View Controller
945
28.3.1 Model-Klasse
948
28.3.2 View-Klasse
949
28.3.3 Controller-Klasse
950
28.3.4 Hauptprogramm
951
28.3.5 Ersetzung des Views
951
28.4 Fassade
953
28.5 Observer
954
28.5.1 Haupttabelle
957
28.5.2 Abstrakte Detailtabelle
958
28.5.3 Konkrete Detailtabelle
958
28.5.4 Hauptprogramm
959
28.6 Objektorientierte Reports
961
Teil VI Ein Blick über den Tellerrand: Was Sie als ABAP-Entwickler sonst noch kennen sollten
965
29 ABAP-Programmiermodelle
967
29.1 Das klassische Programmiermodell
970
29.2 Die Innovation für die Zukunft
972
29.3 Das ABAP-Programmiermodell für SAP Fiori
974
29.4 Das ABAP-RESTful-Programmiermodell
977
30 SAP HANA
981
30.1 Überblick
982
30.2 Architektur
983
30.2.1 Die In-Memory-Technologie
984
30.2.2 Spaltenorientierte Speicherung
984
30.2.3 Wertekomprimierung
986
30.3 Migration auf SAP HANA
987
30.4 SAP-HANA-Objekte
988
30.4.1 Attribute View
989
30.4.2 Analytic View
990
30.4.3 Calculation View
991
30.4.4 Stored Procedures
992
30.5 Volltextsuchen
992
30.5.1 Volltextindex anlegen
993
30.5.2 Fuzzy-Suche
995
30.5.3 Linguistische Suche
996
30.5.4 Eingabefelder für die Vorschlagssuche
997
31 SAPUI5, SAP Fiori und SAP Gateway
1001
31.1 SAPUI5
1002
31.2 SAP Web IDE
1004
31.3 SAP Fiori
1005
31.3.1 SAP Fiori Launchpad
1006
31.4 OData
1007
31.4.1 Beispiel
1008
31.4.2 Metadatendokument
1010
31.4.3 Aufbau eines OData-Service
1010
31.4.4 Abfrageoptionen
1012
31.5 SAP Gateway
1013
31.5.1 Embedded Deployment
1014
31.5.2 Zentrales Deployment ohne Entwicklung
1014
31.5.3 Zentrales Deployment mit Entwicklung
1015
31.6 Entwicklung eines OData-Service
1015
31.6.1 Entwicklung
1017
31.6.2 Veröffentlichung
1023
31.6.3 Testen
1025
31.6.4 Fehleranalyse
1027
31.7 Überblick über die Implementierung der CRUDQ-Methoden
1027
31.7.1 Auslesen der Schlüsselfelder
1028
31.7.2 Auslesen des HTTP-Request-Bodys
1028
31.7.3 Abfrageoptionen $skip und $top
1029
31.7.4 Abfrageoption $count
1030
31.7.5 Abfrageoption $inline-count
1030
31.7.6 Abfrageoption $filter
1031
31.7.7 Abfrageoption $select
1032
31.7.8 Abfrageoption $orderby
1033
31.7.9 Meldungen ausgeben
1034
32 Andere SAP-Webtechnologien
1035
32.1 Business Server Pages (BSP)
1036
32.1.1 BSP-Anwendung mit HTML anlegen
1038
32.1.2 BSP-Anwendung mit HTMLB anlegen
1041
32.2 Web Dynpro ABAP
1043
32.2.1 Web-Dynpro-Component anlegen
1045
32.2.2 Ausgabetabelle definieren
1047
32.2.3 Methode zur Datenselektion implementieren
1050
32.2.4 Context mit View verbinden
1054
32.2.5 Ergebnistabelle anlegen
1057
32.2.6 Logik für den Button implementieren
1058
32.2.7 Web-Dynpro-Anwendung anlegen
1060
32.3 Internet Communication Framework
1061
Anhang
1065
A Das SAP-Flugdatenmodell
1067
B Übersicht der ABAP-Anweisungen
1069
C Eingebaute Datentypen
1079
D Transaktionscodes
1081
E Wichtige Systemfelder
1085
F Technische Tabellen
1087
G Nützliche Funktionsbausteine
1089
H Klassen
1093
I Namenskonventionen für die Programmierung
1095
J Systemglossar und Suche nach fremdsprachigen SAP-Begriffen
1099
K Der Autor
1101
L Glossar
1103
Index
1109