Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Einleitung
27
TEIL I Die Werkzeugkiste des ABAP-Entwicklers
35
1 Die ABAP Workbench
37
1.1 Die Werkzeuge der ABAP Workbench
38
1.2 Der Object Navigator
39
1.3 Der Repository Browser
42
1.3.1 Übergeordnete Objektliste
43
1.3.2 Favoriten anlegen
44
1.4 Der ABAP Editor
44
1.4.1 Den neuen ABAP Editor aktivieren
45
1.4.2 Einen Report anlegen
46
1.4.3 Die Funktionsleiste
49
1.4.4 Die (Auto)Vervollständigung
51
1.4.5 Der Pretty Printer
54
1.4.6 Die Musterfunktion
54
1.4.7 Der Package Builder
57
1.4.8 ABAP-Beispiele
59
2 Die ABAP Development Tools
61
2.1 SAPs Eclipse-Strategie
61
2.2 Installation und Konfiguration
64
2.2.1 Installation von Eclipse
64
2.2.2 Konfiguration des Backend-Systems
66
2.3 Ein System anbinden
67
2.4 Einen Report anlegen
68
2.5 Die Menüleiste und wichtige Tastaturkürzel
70
2.6 Der Pretty Printer und weitere Quellcodefunktionen
73
2.7 Die Musterfunktion
74
2.7.1 Muster für Funktionsbausteine
74
2.7.2 Muster für den Aufruf von Methoden
74
2.8 Der Debugger
75
2.8.1 Die Menüleiste des Debuggers
77
2.8.2 Die Variablen- und Outline-Anzeige
78
2.8.3 Breakpoints
78
2.8.4 Watchpoints
79
2.8.5 Interne Tabellen
80
2.9 Dokumentation mit ABAP Doc
82
2.9.1 Quick Fix
84
2.9.2 Dokumentation exportieren
84
2.9.3 Verlinkung zu Kurztexten des SAP GUI
85
2.10 Refactoring-Funktionen
85
2.10.1 Umbenennung
86
2.10.2 Eine Methode extrahieren
86
2.10.3 Quick Fix
87
3 Das ABAP Dictionary
89
3.1 Domänen
91
3.1.1 Das zweistufige Domänenprinzip
91
3.1.2 Domänen anlegen
92
3.1.3 Konvertierungsroutinen
93
3.1.4 Wertebereich einer Domäne
95
3.2 Datenelemente
96
3.2.1 Feldbezeichner
97
3.2.2 Übersetzung
98
3.2.3 Zusatzeigenschaften
99
3.3 Strukturen
100
3.3.1 Erweiterungskategorie
100
3.3.2 Referenztabellen und das Referenzfeld
101
3.4 Tabellentypen
102
3.5 Datenbanktabellen
104
3.5.1 Datenbanktabellen anzeigen
104
3.5.2 Datenbanktabellen anlegen
105
3.5.3 Auslieferungsklasse
106
3.5.4 Tabellensicht-Pflege
106
3.5.5 Datenart
107
3.5.6 Größenkategorie
108
3.5.7 Pufferung
108
3.5.8 Felder ausprägen
109
3.5.9 Speicherart von Datenbanken mit SAP HANA
110
3.6 Indizes
110
3.7 Typgruppen
112
3.8 Views
113
3.8.1 Datenbank-View
113
3.8.2 Projektions-View
115
3.8.3 Pflege-View
116
3.8.4 Help-View
117
3.9 Pflegedialoge
117
3.9.1 Pflegedialog anlegen
118
3.9.2 Pflegedialog verbreitern
119
3.10 Suchhilfen
121
3.10.1 Elementare Suchhilfe
122
3.10.2 Sammelsuchhilfe
123
3.11 Datenbank-Utility-Tool
124
3.12 Das Sperrkonzept
125
4 Transaktionen
129
4.1 Transaktionen anlegen
130
4.1.1 Dialogtransaktion
131
4.1.2 Reporttransaktion
131
4.1.3 ABAP-Objects-Transaktion
132
4.1.4 Variantentransaktion
133
4.1.5 Parametertransaktion
133
4.2 Transaktionsvarianten
134
4.2.1 Eine Screenvariante anlegen
135
4.2.2 Eine Transaktionsvariante anlegen
136
4.3 Transaktionen mit ABAP aufrufen
137
5 Der Function Builder
139
5.1 Der Aufbau eines Funktionsbausteins
139
5.1.1 Eigenschaften
140
5.1.2 Die Schnittstelle
140
5.1.3 Ausnahmen
142
5.1.4 Der Quellcode
142
5.2 Einen Funktionsbaustein anlegen
142
5.3 Funktionsbausteine testen
143
5.4 Funktionsgruppen
144
5.4.1 Funktionsgruppe anlegen
144
5.4.2 Aufbau einer Funktionsgruppe
145
5.4.3 Lebensdauer einer Funktionsgruppe
146
6 Der Class Builder
147
6.1 Klassen anlegen
147
6.1.1 Vererbung
149
6.1.2 Interfaces
150
6.1.3 Freunde
151
6.1.4 Attribute
151
6.1.5 Methoden
152
6.1.6 Ereignisse
156
6.1.7 Typen
156
6.1.8 Aliases
157
6.1.9 Konstruktoren anlegen
157
6.1.10 Eine Klasse testen
158
6.1.11 Klassen direkt bearbeiten
159
6.2 Ausnahmeklassen anlegen
160
6.3 Interfaces anlegen
161
TEIL II Der Kern der Sprache ABAP
163
7 Die ABAP-Grundbefehle
165
7.1 Syntaxregeln
166
7.2 Kommentare
167
7.3 Die SAP-Hilfe
168
7.4 Datendeklaration
169
7.4.1 Felder
170
7.4.2 Konstanten
173
7.4.3 Strukturen
174
7.4.4 Aufzählungstypen
176
7.4.5 Feldsymbole
179
7.4.6 Unterschied zwischen TYPE und LIKE
181
7.5 Inline-Deklarationen
182
7.6 Typdefinitionen
183
7.6.1 Felder
184
7.6.2 Strukturen
185
7.7 Initialisierung
186
7.7.1 Felder initialisieren
187
7.7.2 Speicherbereich freigeben
187
7.8 Steueranweisungen
187
7.8.1 Die IF-Abfrage
188
7.8.2 Logische Ausdrücke
189
7.8.3 Die CASE-Anweisung
190
7.8.4 Die Anweisung CASE TYPE OF
191
7.8.5 Die DO-Schleife
192
7.8.6 Die WHILE-Schleife
193
7.8.7 Die CHECK-Anweisung
193
7.8.8 Die EXIT-Anweisung
194
7.8.9 Die CONTINUE-Anweisung
194
7.9 Rechenoperationen
195
7.10 Ausgabeanweisungen
197
7.10.1 Die Anweisung WRITE
198
7.10.2 Das Muster für die Listenausgabe
199
7.11 Meldungen
199
7.12 Mit Zeichenketten arbeiten
201
7.12.1 Vergleich von Zeichenketten
201
7.12.2 Verkettungsoperatoren
203
7.12.3 Teilfeldzugriff
204
7.12.4 Teilzeichenketten finden
206
7.12.5 Teilzeichenketten ersetzen
207
7.12.6 Eingebaute Funktionen für Zeichenketten
209
7.12.7 Zeichenketten-Templates
211
7.13 Konstruktorausdrücke
214
7.13.1 VALUE: Erzeugung von Werten
216
7.13.2 REF: Referenzen besorgen
218
7.13.3 EXACT: Verlustfreie Zuweisung/Berechnung
218
7.13.4 CONV: Konvertierung von Werten
219
7.13.5 COND: Bedingte Ausdrücke
220
7.13.6 SWITCH: Bedingte Ausdrücke
221
7.13.7 NEW: Instanziierung
222
7.13.8 CORRESPONDING: Mapping von Strukturen und internen Tabellen
223
7.13.9 Der Zusatz LET
226
7.13.10 Der Zusatz BASE
226
7.14 Operandenpositionen
226
7.14.1 Funktionen und Ausdrücke für Lesepositionen
227
7.14.2 Ausdrücke für Schreibpositionen
228
7.15 Änderungen und Neuerungen bis ABAP 7.51
228
8 Mit internen Tabellen arbeiten
231
8.1 Tabellenarten
233
8.1.1 Standardtabellen
233
8.1.2 Sortierte Tabellen
234
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
239
8.4 Zeilen hinzufügen
239
8.4.1 Daten mit SELECT hinzufügen
240
8.4.2 Zeilen mit APPEND anhängen
240
8.4.3 Zeilen mit INSERT hinzufügen
241
8.4.4 Werte mit VALUE hinzufügen
242
8.4.5 Der Zusatz FOR
244
8.4.6 Gruppierungen mit FOR
246
8.4.7 Der Zusatz LINES OF
250
8.4.8 Hinzufügen mit NEW
251
8.5 Inhalt auslesen
251
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
266
8.7.2 Tabelle mit Tabellenausdrücken ändern
266
8.7.3 Tabelle mit MODIFY ändern
267
8.7.4 Tabelle mit CORRESPONDING anreichern
268
8.8 Interne Tabellen kopieren
271
8.8.1 Strukturgleiche interne Tabellen kopieren
271
8.8.2 Strukturfremde interne Tabellen kopieren
272
8.9 Interne Tabellen aufbereiten
273
8.9.1 Sortieren mit SORT
273
8.9.2 Zusammenfassung mit COLLECT
274
8.9.3 Reduzierungen mit REDUCE
274
8.9.4 Filterungen mit FILTER
276
8.10 Eingebaute Funktionen für interne Tabellen
277
8.11 Meshes
279
8.12 Änderungen und Neuerungen im Umfeld von internen Tabellen bis ABAP 7.51
283
9 Zugriff auf Datenbanken
285
9.1 Die fünf goldenen Regeln
286
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 Die WHERE-Klausel
293
9.2.4 Ranges-Tabellen und Selektionsoptionen
295
9.2.5 FOR ALL ENTRIES IN: Einschränkung durch interne Tabellen
296
9.2.6 Gruppierung und Sortierung der Ergebnisse
297
9.2.7 Syntax
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 Syntax
304
9.2.13 JOIN: Verknüpfung
304
9.2.14 WITH: Allgemeine Tabellenausdrücke
309
9.2.15 UNION: Vereinigung
310
9.3 Open-SQL-Ausdrücke
311
9.3.1 CASE-Anweisungen
311
9.3.2 Verknüpfungen von Zeichenketten mit &&
312
9.3.3 Arithmetische Ausdrücke
313
9.3.4 Typumwandlungen mit CAST
314
9.3.5 Elementare Werte
315
9.4 Open-SQL-Funktionen
315
9.4.1 Aggregatfunktionen
316
9.4.2 Zeichenkettenfunktionen
317
9.4.3 Numerische Funktionen
319
9.4.4 Datumsfunktionen
320
9.4.5 Coalesce-Funktion: Nullwerte ersetzen
320
9.5 Ändernde Open-SQL-Anweisungen
321
9.5.1 DELETE: Löschen von Einträgen
322
9.5.2 INSERT: Einträge einfügen
324
9.5.3 UPDATE: Einträge ändern
326
9.5.4 MODIFY: Einfügen oder Ändern
328
9.6 Sekundäre Datenbankverbindungen
330
9.7 Natives SQL
330
9.7.1 EXEC-SQL
331
9.7.2 ABAP Database Connectivity
332
9.8 ABAP Core Data Services (CDS)
333
9.9 Änderungen und Neuerungen im Umfeld von Open SQL bis ABAP 7.51
336
10 Zugriff auf SAP-HANA-Entwicklungsobjekte
339
10.1 Aufruf von SAP-HANA-Views
339
10.1.1 Aufruf mit nativem SQL
340
10.1.2 Aufruf über externe Views
340
10.1.3 Externe Views anlegen
341
10.2 Aufruf von Datenbankprozeduren
342
10.2.1 Aufruf mit nativem SQL
342
10.2.2 Aufruf mit einem Datenbankprozedur-Proxy
344
10.2.3 Datenbankprozedur-Proxy anlegen
345
10.3 ABAP Managed Database Procedures (AMDP)
346
10.3.1 ABAP Managed Database Procedures anlegen
347
10.3.2 Datenbankfunktionen anlegen
349
10.3.3 BAdIs für ABAP Managed Database Procedures
350
10.4 Änderungen und Neuerungen beim Zugriff auf SAP-HANA-Entwicklungsobjekte bis ABAP 7.51
351
11 Die ABAP-Objects-Syntax
353
11.1 Grundaufbau einer Klasse
354
11.2 Sichtbarkeiten
357
11.3 Datentypen und Attribute
358
11.4 Methoden
360
11.4.1 Methoden implementieren
362
11.4.2 Methoden aufrufen
363
11.5 Konstruktoren
366
11.5.1 Instanzkonstruktor
367
11.5.2 Statischer Konstruktor
368
11.6 Ereignisse
369
11.6.1 Definition von Ereignissen
369
11.6.2 Ereignisse auslösen
370
11.6.3 Definition eines Ereignisbehandlers
370
11.6.4 Ereignisbehandler registrieren
370
11.6.5 Beispiel für die Definition, das Auslösen und die Behandlung eines Ereignisses
371
11.7 Vererbung
373
11.8 Klassenarten
375
11.8.1 Abstrakte und finale Klassen
375
11.8.2 Statische Klassen
375
11.8.3 Ausnahmeklassen
376
11.9 Ausnahmen für Methoden
377
11.9.1 Klassenbasierte Ausnahmen
378
11.9.2 Lokale Ausnahmen
381
11.10 Freunde
383
11.11 Interfaces
383
11.11.1 Implementierung eines Interface
384
11.11.2 Verwendung von Interfaces
386
11.12 Das ABAP-Objects-Muster
387
11.13 Casting
388
11.13.1 Casting mit dem Zuweisungsoperator
388
11.13.2 Casting mit dem Casting-Operator
388
11.13.3 Casting mit der Anweisung CAST
389
11.14 Objekttyp überprüfen
389
11.14.1 Die Anweisung IS INSTANCE OF
389
11.14.2 Die Anweisung CASE TYPE OF
390
11.15 Änderungen und Neuerungen in ABAP Objects bis ABAP 7.51
391
12 Reports und Selektionsbildschirme
393
12.1 Ereignisse eines Reports
394
12.2 Eingabeelemente
395
12.2.1 Parameter
396
12.2.2 Checkboxen
397
12.2.3 Radiobuttons
398
12.2.4 Dropdown-Liste
398
12.2.5 Selektionsoptionen
400
12.2.6 Buttons
401
12.2.7 Buttons auf der Funktionsleiste
403
12.2.8 Der Zusatz USER-COMMAND
404
12.3 Strukturierungselemente für den Selektionsbildschirm
405
12.3.1 Blöcke
405
12.3.2 Leerzeilen
406
12.3.3 Horizontale Linien
406
12.3.4 Textausgaben
407
12.3.5 Tabstrips
407
12.3.6 Modifikationsgruppen
408
12.4 Ereignisse eines Selektionsbildschirms
410
12.5 Textelemente
413
12.5.1 Zugriff auf Textelemente
414
12.5.2 Textsymbole
414
12.5.3 Selektionstexte
416
12.5.4 Listenüberschriften
417
12.6 Nachrichtenklassen
417
12.6.1 Nachrichtenklasse anlegen
418
12.6.2 Nachricht aufrufen
419
12.6.3 Parametrisierte Nachrichten
419
12.7 Einen Report mit ABAP aufrufen
420
12.8 SPA-/GPA-Parameter
422
12.8.1 SPA-/GPA-Parameter anlegen und setzen
423
12.8.2 SPA-/GPA-Parameter auslesen
424
13 Strukturierungselemente in ABAP
425
13.1 Unterprogramme
426
13.1.1 Unterprogramm definieren
427
13.1.2 Sichtbarkeitsbereiche von Datendeklarationen
427
13.1.3 Aufruf eines Unterprogramms
428
13.1.4 Parameterübergabe
430
13.2 Makros
433
13.2.1 Makros definieren
433
13.2.2 Makros aufrufen
434
13.3 Includes
434
13.3.1 Include einbinden
435
13.3.2 Top-Include anlegen
435
13.3.3 Include anlegen
436
13.4 Funktionsbausteine
437
13.4.1 Arten von Funktionsbausteinen
438
13.4.2 Aufruf von Funktionsbausteinen
439
13.4.3 Funktionsbausteine finden
442
13.5 Datenkonsistenz
443
14 Die Dynpro-Programmierung
447
14.1 Dynpros anlegen
448
14.1.1 Dynpro gestalten
449
14.1.2 Dynpro aufrufen
451
14.1.3 Zugriff auf Dynpro-Elemente
452
14.2 Ablauflogik eines Dynpros
452
14.2.1 Process Before Output (PBO)
453
14.2.2 PBO-/PAI-Module anlegen
454
14.2.3 GUI-Status
456
14.2.4 GUI-Titel
458
14.2.5 Process After Input (PAI)
460
14.3 SAP Control Framework
461
14.4 Pop-up-Fenster
464
14.4.1 Entscheidungen
465
14.4.2 Textanzeige
466
14.4.3 Werteabfrage
467
TEIL III Techniken zur Qualitätssicherung
471
15 Tests und Qualitätskontrolle
473
15.1 Der ABAP Debugger
473
15.1.1 Den neuen ABAP Debugger aktivieren
474
15.1.2 Den Debugger starten und beenden
474
15.1.3 Die Oberfläche
477
15.1.4 Die Werkzeuge
478
15.1.5 Steuerung des Debuggers
480
15.1.6 Schnellanzeige der Variablen
481
15.1.7 Vergleichstool
483
15.1.8 Aufrufstack
484
15.1.9 Pop-up-Fenster debuggen
485
15.1.10 Interne Tabellen
486
15.1.11 Debugger-Breakpoints
487
15.1.12 Watchpoints
491
15.1.13 Speicherverwaltung
492
15.1.14 Ausnahmen
494
15.2 Das Debugging-Skript
494
15.2.1 Einen Trigger für das Skript definieren
496
15.2.2 Ein Skript schreiben
497
15.2.3 Das Skript starten und beenden
499
15.3 Der Code Inspector
501
15.3.1 Ad-hoc-Prüfung über Transaktion SE80
502
15.3.2 Prüfvariante
502
15.3.3 Objektmenge
504
15.3.4 Inspektion
504
15.3.5 Ergebnisliste
505
15.4 ABAP Unit
506
15.4.1 Grundsätzlicher Aufbau einer Testklasse
506
15.4.2 Systemeinstellungen
509
15.4.3 Assertions
510
15.4.4 Assistent für die Testklassengenerierung
511
15.4.5 Ausführen eines ABAP-Unit-Tests
513
15.4.6 Die Ergebnisanzeige
513
15.4.7 Der ABAP Unit Browser
514
15.5 Das ABAP Test Cockpit
515
15.5.1 Ausführung eines ATC-Tests
515
15.5.2 Die Transaktion ATC
516
15.5.3 Der ATC-Ergebnis-Browser
517
16 Werkzeuge und Tipps zur Performanceanalyse
519
16.1 Richtlinien für die ABAP-Entwicklung
520
16.2 Transaktion SAT: Laufzeitanalyse
523
16.2.1 Laufzeitmessung durchführen
524
16.2.2 Laufzeitmessung auswerten
525
16.2.3 Anzeige der Messungen
525
16.3 Transaktion SE30: Die alte Laufzeitanalyse
527
16.4 SQL-Monitor
529
16.4.1 Transaktion SQLM: Den SQL-Monitor administrieren
530
16.4.2 Transaktion SQLMD: Analyse der Daten
532
16.5 SQL Performance Tuning Worklist
533
16.6 Transaktion ST05
535
16.6.1 SQL-Trace
536
16.6.2 Analyse einer SQL-Anweisung
538
16.7 Laufzeitanalyse mithilfe der ABAP-Programmierung
538
16.7.1 Zeitmessung
539
16.7.2 Fortschrittsanzeige implementieren
539
16.8 Application Log
541
16.8.1 Transaktion SLG0: Ein Application Log anlegen
542
16.8.2 Log mit Nachrichten befüllen
542
16.8.3 Log als Pop-up-Fenster darstellen
544
17 Das Transportwesen
547
17.1 Die SAP-Systemlandschaft
548
17.2 Transportaufträge
551
17.2.1 Transportauftrag anlegen
552
17.2.2 Transportauftrag freigeben und importieren
553
17.2.3 Aufgabe anlegen
557
17.2.4 Zuordnung des Transportauftrags ändern
557
17.2.5 Transportaufträge und Aufgaben löschen
559
17.2.6 Objekte in einen Transportauftrag aufnehmen
559
17.2.7 Transportaufträge verschmelzen
560
17.2.8 Transportauftrag oder Aufgabe finden
561
17.2.9 Freigabe eines Transportauftrags zurücknehmen
561
18 Die Jobverwaltung
563
18.1 Transaktion SM36: Jobs definieren
563
18.1.1 Allgemeine Angaben
564
18.1.2 Startbedingung
565
18.1.3 Schritt (Step) definieren
569
18.2 Transaktion SM37: Jobs überwachen und freigeben
570
18.3 Ereignisse für Jobs
572
18.3.1 Ereignis definieren
572
18.3.2 Ereignis auslösen
572
18.4 Jobs mit ABAP definieren
573
TEIL IV Fortgeschrittene Programmiertechniken
575
19 Tabellenanzeige mit dem SAP List Viewer (ALV)
577
19.1 Die alte ALV-Anzeige
579
19.1.1 Aufbau des Grundgerüsts
580
19.1.2 Eingabefähigkeit
582
19.1.3 Funktionen
586
19.1.4 Ereignisse
587
19.1.5 Spalten bearbeiten
588
19.1.6 Zellentypen
591
19.1.7 Farbige Hervorhebung
593
19.1.8 Icons
595
19.1.9 ALV-Tabellen sortieren und gruppieren
596
19.1.10 Aggregation
597
19.1.11 Layout speichern
598
19.2 Die neue ALV-Anzeige
599
19.2.1 Aufbau des Grundgerüsts
599
19.2.2 Funktionen
600
19.2.3 Ereignisse
602
19.2.4 Spalten bearbeiten
603
19.2.5 Zellentypen
607
19.2.6 Farbige Hervorhebung
608
19.2.7 Icons
609
19.2.8 ALV-Tabellen sortieren und gruppieren
610
19.2.9 Aggregration
611
19.2.10 Layout speichern
612
19.2.11 Filter
612
19.3 SAP List Viewer mit integriertem Datenzugriff (IDA)
613
19.3.1 Aufbau des Grundgerüsts
614
19.3.2 Funktionen
615
19.3.3 Ereignisse
616
19.3.4 Spalten bearbeiten
617
19.3.5 Zellentypen
622
19.3.6 Icons
623
19.3.7 ALV-Tabelle sortieren und gruppieren
623
19.3.8 Aggregation
623
19.3.9 Layout
624
19.3.10 Filter
625
19.3.11 Textsuche
627
19.4 Anzeigemodi
628
19.4.1 Ausgabe auf Selektionsbildschirm
628
19.4.2 Mehrere ALV-Tabellen in einem Split-Container ausgeben
630
20 SAP-Schnittstellen
633
20.1 RFC-Funktionsbausteine
634
20.2 Business-Objekte und BAPIs
635
20.2.1 Business Object Repository und BAPI Explorer
639
20.2.2 BAPIs
640
20.3 Flat Files
646
20.3.1 Dateien schreiben
647
20.3.2 Dateien einlesen
649
20.3.3 Weitere nützliche Funktionen
651
20.3.4 Beispiel
652
20.4 Webservices (SOAP)
654
20.4.1 WSDL-Dokument
656
20.4.2 Webservices anlegen und finden
657
20.4.3 Webservice konsumieren
664
20.5 Batch Input
670
20.5.1 Aufzeichnung der Transaktion
671
20.5.2 Direkte Ausführung
674
20.5.3 Mappe erstellen
677
20.6 Einführung in die Legacy System Migration Workbench (LSMW)
678
21 SAP-Erweiterungen
681
21.1 User-Exits
681
21.2 Customer-Exits
684
21.3 Klassische Business Add-ins (BAdIs)
688
21.4 Enhancement Framework
692
21.4.1 Architektur
694
21.4.2 Explizite Erweiterungspunkte
697
21.4.3 Implizite Erweiterungspunkte
699
21.4.4 Klassen-Erweiterungen
701
21.4.5 Funktionsbaustein-Erweiterungen
703
21.4.6 Erweiterungssektionen
704
21.4.7 Struktur-Erweiterungen
706
21.4.8 Suchhilfen-Erweiterungen
708
21.4.9 Index-Erweiterungen
708
21.4.10 Einzelwert-Erweiterungen
709
21.4.11 Debugging von Erweiterungen
710
21.4.12 Transaktion SPAU_ENH: Abgleich von Erweiterungen im Rahmen von Updates
712
21.5 Neue Business Add-ins (BAdIs)
714
21.5.1 Aufruf
715
21.5.2 Definition aufrufen
715
21.5.3 Implementierung anlegen
716
21.5.4 Filterwerte
716
21.5.5 Menü-Exit
717
21.5.6 Dynpro-Exit
718
21.6 Switch Framework
727
21.6.1 Architektur
728
21.6.2 Schaltbare Objekte
729
21.7 Suche nach Erweiterungen
730
22 SAP-Formularentwicklung
731
22.1 Der Druckdialog
733
22.2 SAPscript
735
22.2.1 Formular erstellen
737
22.2.2 Druckprogramm erstellen
742
22.3 SAP Smart Forms
743
22.3.1 Formular erstellen
745
22.3.2 Druckprogramm erstellen
751
22.4 SAP Interactive Forms by Adobe
753
22.4.1 Formular erstellen
754
22.4.2 Druckprogramm erstellen
757
22.5 Generierung von PDFs
759
22.5.1 Generierung der internen Tabelle in SAPscript
759
22.5.2 Generierung der internen Tabelle SAP Smart Forms
760
22.5.3 Generierung der internen Tabelle in SAP Interactive Forms by Adobe
761
22.5.4 OTF in PDF konvertieren
762
23 Fortgeschrittene Programmiertechniken
763
23.1 Object Services
764
23.1.1 Persistente Klasse anlegen
764
23.1.2 Datenbanktabelle lesen
768
23.1.3 Datenbanktabelle aktualisieren
769
23.1.4 Query anlegen
770
23.1.5 Neuen Eintrag in der Datenbanktabelle anlegen
771
23.1.6 Löschen eines neuen Eintrags
772
23.2 Mit XML und JSON arbeiten
772
23.2.1 Exkurs: XML und JSON
773
23.2.2 Konvertierung von ABAP in JSON/XML
774
23.2.3 Konvertierung von JSON/XML in ABAP
775
23.2.4 Erzeugung eines XML-Dokuments
775
23.2.5 Objekte serialisieren
776
23.3 Daten im Memory ablegen
777
23.3.1 Die Anweisungen EXPORT und IMPORT
778
23.3.2 Shared Objects
780
23.4 Parallelisierung
785
23.5 Dynamische Erzeugung von Datenobjekten
786
23.5.1 Anonymes Datenobjekt mit CREATE DATA erzeugen
786
23.5.2 Anonymes Datenobjekt mit NEW erzeugen
788
23.5.3 Beispiel: Dynamische ALV-Tabelle erzeugen
789
23.6 Runtime Type Services (RTTS)
792
23.6.1 Strukturen: Klasse CL_ABAP_STRUCTDESCR
795
23.6.2 Interne Tabellen: Klasse CL_ABAP_TABLEDESCR
795
23.6.3 Referenzdatentypen: Klasse CL_ABAP_REFDESCR
797
23.6.4 Klassen: Klasse CL_ABAP_CLASSDESCR
797
23.6.5 Interfaces: Klasse CL_ABAP_INTFDESCR
798
23.6.6 Elementare Datentypen: Klasse CL_ABAP_ELEMDESCR
799
23.6.7 Beispiel: Eine interne Tabelle nach Microsoft Excel exportieren
799
23.7 Dynamisches SQL
802
23.7.1 Dynamische Selektionsliste
803
23.7.2 Dynamische FROM-Klausel
803
23.7.3 Dynamische WHERE-Klausel
805
TEIL V Objektorientierte Programmierung
807
24 Grundlagen der Objektorientierung
809
24.1 Einführung für ABAP-Entwickler
810
24.2 Klassen und Objekte
816
24.3 Instanziierung
820
24.4 Datenkapselung
822
24.5 Ereignisse
825
24.6 Vererbung
828
24.6.1 Redefinition
830
24.6.2 Klassenhierarchien
831
24.7 Klassenarten
833
24.7.1 Abstrakte Klassen
834
24.7.2 Finale Klassen
834
24.8 Interfaces
834
24.9 Polymorphie
839
24.10 Zusammenfassung
840
25 Unified Modeling Language (UML)
843
25.1 Anwendungsfalldiagramm
844
25.1.1 Akteure
845
25.1.2 Anwendungsfälle
846
25.1.3 Beziehungen
847
25.1.4 Beispieldiagramm
849
25.1.5 Textuelle Beschreibung
849
25.2 Klassendiagramm
850
25.2.1 Attribute
853
25.2.2 Operationen
853
25.2.3 Beziehungen zwischen Klassen
854
25.2.4 Vom Anwendungsfall zum Klassendiagramm
857
25.2.5 Beispieldiagramm
858
26 Anwendungsentwicklung – wo fange ich an?
861
26.1 Anforderungsermittlung
864
26.1.1 Ermittlung
864
26.1.2 Spezifikation
866
26.1.3 Verhaltensmodellierung
867
26.1.4 Validierung
869
26.2 Analyse
869
26.2.1 Die Klassenmodellierung
870
26.2.2 Verhaltensmodellierung
872
26.2.3 Verifikation
873
26.3 Entwurf
873
27 Entwurfsmuster
877
27.1 Singleton
879
27.2 Fabrikmethode
881
27.3 Model View Controller
885
27.3.1 Model-Klasse
889
27.3.2 View-Klasse
889
27.3.3 Controller-Klasse
890
27.3.4 Hauptprogramm
891
27.3.5 Ersetzung des Views
892
27.4 Fassade
894
27.5 Observer
895
27.5.1 Haupttabelle
897
27.5.2 Abstrakte Detailtabelle
898
27.5.3 Konkrete Detailtabelle
899
27.5.4 Hauptprogramm
900
27.6 Objektorientierte Reports
901
TEIL VI Ein Blick über den Tellerrand: Was Sie als ABAP-Entwickler sonst noch kennen sollten
905
28 SAP HANA
907
28.1 Überblick
908
28.2 Architektur
909
28.2.1 Die In-Memory-Technologie
910
28.2.2 Spaltenorientierte Speicherung
911
28.2.3 Wertekomprimierung
913
28.3 Migration auf SAP HANA
913
28.4 SAP-HANA-Objekte
915
28.4.1 Attribute View
916
28.4.2 Analytic View
917
28.4.3 Calculation View
917
28.4.4 Stored Procedures
919
28.5 Volltextsuchen
919
28.5.1 Volltextindex anlegen
920
28.5.2 Fuzzy-Suche
922
28.5.3 Linguistische Suche
923
28.5.4 Eingabefelder für die Vorschlagssuche
924
29 SAPUI5, SAP Fiori und SAP Gateway
927
29.1 SAPUI5
928
29.2 SAP Web IDE
930
29.3 SAP Fiori
931
29.4 OData
933
29.4.1 Metadatendokument
936
29.4.2 Aufbau eines OData-Service
936
29.4.3 Abfrageoptionen
938
29.4.4 Beispiel
938
29.5 SAP Gateway
939
29.5.1 Embedded Deployment
940
29.5.2 Zentrales Deployment ohne Entwicklung
940
29.5.3 Zentrales Deployment mit Entwicklung
941
29.6 Entwicklung eines OData-Service
942
29.6.1 Entwicklung
942
29.6.2 Veröffentlichung
949
29.6.3 Testen
951
29.6.4 Fehleranalyse
953
29.7 Überblick über die Implementierung der CRUDQ-Methoden
953
29.7.1 Auslesen der Schlüsselfelder
954
29.7.2 Auslesen des HTTP-Request-Bodys
954
29.7.3 Abfrageoptionen $skip und $top
956
29.7.4 Abfrageoption $count
956
29.7.5 Abfrageoption $inline-count
957
29.7.6 Abfrageoption $filter
958
29.7.7 Abfrageoption $select
959
29.7.8 Abfrageoption $orderby
959
29.7.9 Meldungen ausgeben
960
30 Andere SAP-Webtechnologien
963
30.1 Business Server Pages (BSP)
964
30.1.1 BSP-Anwendung mit HTML anlegen
966
30.1.2 BSP-Anwendung mit HTMLB anlegen
969
30.2 Web Dynpro ABAP
972
30.2.1 Web-Dynpro-Component anlegen
973
30.2.2 Ausgabetabelle definieren
976
30.2.3 Methode zur Datenselektion implementieren
979
30.2.4 Context mit View verbinden
983
30.2.5 Ergebnistabelle anlegen
986
30.2.6 Logik für den Button implementieren
987
30.2.7 Web-Dynpro-Anwendung anlegen
989
30.3 Internet Communication Framework
991
Anhang
995
A Das SAP-Flugdatenmodell
997
B Übersicht der ABAP-Anweisungen
999
C Eingebaute Datentypen
1010
D Transaktionscodes
1012
E Wichtige Systemfelder
1016
F Technische Tabellen
1017
G Nützliche Funktionsbausteine
1019
H Klassen
1023
I Namenskonventionen für die Programmierung
1025
J Systemglossar und Suche nach fremdsprachigen SAP-Begriffen
1029
K Glossar
1031
L Der Autor
1037
Index
1039