Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
15
1 Effektive Zeichenkettenverarbeitung in ABAP
19
1.1 Datentypen zum Speichern von Zeichen und Bytes
20
1.1.1 Datentypen fester Länge
20
1.1.2 Datentypen variabler Länge
31
1.1.3 Generische Datentypen
36
1.1.4 Auswahl des geeigneten Datentyps
36
1.2 Grundlegende Operationen für die Zeichenkettenverarbeitung
38
1.2.1 Zugriff mittels Offset und Länge
38
1.2.2 Verkettung
40
1.2.3 Zerlegung
41
1.2.4 Verschiebung
42
1.2.5 Formatierung von Zeichenketten
43
1.2.6 Weitere Operationen
45
1.2.7 ABAP-Klassen für die Zeichenkettenverarbeitung
45
1.3 Suchen und Ersetzen
46
1.3.1 Anweisung FIND
47
1.3.2 Anweisung REPLACE
51
1.3.3 Suchen mit logischen Ausdrücken
51
1.4 Fazit
55
2 Reguläre Ausdrücke für die Zeichenkettenverarbeitung in ABAP
57
2.1 Reguläre Ausdrücke in der Textverarbeitung
57
2.1.1 Drei Typen von Textverarbeitungsaufgaben
58
2.1.2 Reguläre Ausdrücke als Retter in der Not
60
2.2 Einführung in die regulären Ausdrücke in ABAP
60
2.2.1 Grundlagen
61
2.2.2 Reguläre Ausdrücke für die Validierung
65
2.2.3 Suchen mit regulären Ausdrücken
68
2.2.4 Reguläre Ausdrücke in ABAP-Programmen
72
2.2.5 Reguläre Ausdrücke außerhalb von ABAP-Programmen
79
2.3 Fortgeschrittene Eigenschaften regulärer Ausdrücke
84
2.3.1 Arbeiten mit Untergruppen
84
2.3.2 Weitere Operatoren und zukünftige Erweiterungen
93
2.3.3 Häufige Muster und Probleme
96
2.3.4 Regex-Ressourcen
101
2.4 Technische Aspekte regulärer Ausdrücke
102
2.4.1 Übereinstimmungen, Backtracking und Schnitte
102
2.4.2 Performancekontrolle
107
2.5 Fazit
112
3 SAP Simple Transformations
113
3.1 XML: Esperanto der Computerkommunikation
115
3.1.1 Sprache contra interne Darstellung
117
3.1.2 Interna nach außen kehren?
119
3.2 Strukturtransformationen mit XSLT
122
3.3 Wichtige Funktionen von Simple Transformations
125
3.4 Struktur eines ST-Programms
128
3.5 XML-Content beschreiben
131
3.6 Tiefe Kopien, Schleifen und Richtungsabhängigkeit
135
3.7 Bedingungen
137
3.8 Zuweisung und Variablen
144
3.9 Modularisierung
147
3.10 Vollständiges ST-Beispielprogramm
150
3.11 Simple Transformations im ABAP-Kontext
152
3.12 Fazit
155
4 ABAP Shared Objects: Programmierkonzept zur effizienten Speicherausnutzung
157
4.1 Grundlegende Anwendungsszenarien
159
4.2 Programmiermodell von ABAP Shared Objects
160
4.2.1 Sperren der Gebietsinstanz
161
4.2.2 Zugriff auf Objekte über das Wurzelobjekt
161
4.2.3 Zugriffsmodell für ABAP Shared Objects
163
4.3 Werkzeuge für die Verwaltung und Überwachung des Shared Memorys
164
4.3.1 Transaktion SHMA - Gebiete für Shared Objects definieren
164
4.3.2 Transaktion SHMM - Shared Objects Monitor überwachen
167
4.4 Programmieren mit ABAP Shared Objects
169
4.4.1 Gebietsinstanz erzeugen
171
4.4.2 Auf eine vorhandene Gebietsinstanz zugreifen
173
4.4.3 Gebietsinstanz aktualisieren
174
4.4.4 Objekte lokaler Klasse in einer Gebietsinstanz
175
4.4.5 Fehler behandeln
176
4.4.6 Debugging von Gebietsinstanzen
177
4.5 Erweiterte Programmiertechniken
179
4.5.1 Versionierung von Gebietsinstanzen
180
4.5.2 Automatischer Gebietsaufbau und Einschränken der Lebensdauer
185
4.5.3 Mandantenabhängige Gebiete
189
4.5.4 Synchronisation von Änderungen
190
4.5.5 Festlegen von Speichergrenzen und Verdrängbarkeit
192
4.5.6 Gleichzeitige Änderungssperren auf mehreren Gebietsinstanzen
193
4.5.7 Weiteres zu Gebietshandles
193
4.6 Empfohlenes Programmiermodell
194
4.7 Fazit
196
5 RFC und RFM - Leitfaden zu ABAP Remote Communications
199
5.1 Grundlagen des RFC und mögliche Varianten
200
5.1.1 Grundlegende Terminologie
200
5.1.2 RFC-Kommunikationsprozess
204
5.1.3 Fünf grundlegende RFC-Varianten
207
5.1.4 RFC und Dialoginteraktionen
228
5.2 Remotefähige Funktionsbausteine
233
5.2.1 RFM anlegen
233
5.2.2 Einrichten von RFC-Destinationen
238
5.2.3 Vordefinierte Destinationen
247
5.3 Datenübertragung und Ausnahmebehandlung beim RFC
249
5.3.1 Serialisierung/Deserialisierung von ABAP-Daten beim RFC
249
5.3.2 Ausnahmebehandlung beim RFC
260
5.4 Fazit
264
6 bgRFC - Einführung in den Background RFC
265
6.1 Grundlegende Begriffe
266
6.1.1 bgRFC-Units
266
6.1.2 bgRFC-Destinationen
268
6.1.3 bgRFC-Szenarien
269
6.1.4 QoS-Level für bgRFC
273
6.2 Programmieren mit bgRFCs
282
6.2.1 Erstellen von Inbound-Units
282
6.2.2 Erstellen von Outbound-Units
285
6.2.3 Aufheben einer Sperre für eine Outbound-Unit
286
6.2.4 Erstellen einer bgRFC-Outbound-Unit vom Typ Q
286
6.2.5 Erstellen einer bgRFC-Out-Inbound-Unit vom Typ Q
287
6.2.6 Verbuchung und bgRFC
288
6.2.7 bgRFC-Scheduler
289
6.2.8 Vorteile des Out-Inbound-Szenarios
290
6.3 Konfigurieren von bgRFC-Destinationen
292
6.3.1 Outbound-Destinationen
292
6.3.2 Inbound-Destinationen
293
6.4 Überwachen von bgRFC-Units
295
6.5 Grundlegende Konfiguration eines bgRFC-Schedulers
300
6.6 Fazit
305
7 Einsatz der ABAP-Test- und Analysewerkzeuge in allen Phasen des Entwicklungsprozesses
307
7.1 Einsatz von Prüf- und Testwerkzeugen während der Entwicklung und in der Testphase
308
7.1.1 ABAP-Programme systematisch testen
308
7.1.2 Werkzeuge für statische Prüfungen
312
7.1.3 Werkzeuge für Unit- und Integrationstests
323
7.1.4 Überprüfen der Programmausführung mit dem Coverage Analyzer
330
7.1.5 Tipps zur Verwendung der Testwerkzeuge
334
7.2 Einsatz von Analysewerkzeugen während der Testphase und des ersten produktiven Einsatzes von ABAP-Applikationen
335
7.2.1 Auswahl des richtigen Werkzeugs
336
7.2.2 Post-Mortem-Analyse
338
7.2.3 Systemprotokoll
339
7.2.4 ABAP-Dumpanalyse
342
7.2.5 Analyse eines beendeten Hintergrundjobs mit der ABAPDumpanalyse
347
7.2.6 Analyse der Programmstrukturen mit der ABAPTraceFunktionalität
355
7.2.7 Wann Sie den ABAP Debugger brauchen
369
7.3 Fazit
370
8 Effizientes ABAP Debugging
373
8.1 Starten des ABAP Debuggers
375
8.1.1 Starten des Debuggers zu Beginn der Programmausführung
375
8.1.2 Starten des Debuggers während einer Dialogtransaktion
380
8.1.3 Starten des Debuggers für einen Hintergrundjob
383
8.2 Breakpoints und Watchpoints
392
8.2.1 Breakpoints
392
8.2.2 Watchpoints
397
8.3 Neuer ABAP Debugger
405
8.3.1 Gründe für einen neuen Debugger
406
8.3.2 Einstellen des Debuggers
407
8.3.3 Zwei-Prozess-Architektur
408
8.3.4 Benutzeroberfläche
410
8.3.5 Debugger-Werkzeuge
419
8.3.6 Debugging in der Praxis
432
8.4 Fazit
438
8.5 Exklusiver und nicht exklusiver Debugging-Modus
440
9 Höhere Softwarequalität durch ABAP-Checkpoints
443
9.1 ABAP-Checkpoints
444
9.2 Assertions
445
9.3 Aktivierbare Assertions
447
9.3.1 Checkpoint-Gruppen
448
9.3.2 Aktivierungseinstellungen
451
9.3.3 Mehrere Aktivierungseinstellungen und Kontextpriorität
454
9.3.4 Globale Aktivierung und Aktivierung für andere Benutzer
455
9.3.5 Programmspezifische Aktivierung und Priorität von Gültigkeitsbereichen
456
9.3.6 Aktivierungsvarianten
457
9.3.7 Übersicht über alle Aktivierungseinstellungen anzeigen
459
9.4 Breakpoints
460
9.5 Aktivierbare Breakpoints
461
9.6 Logpoints
462
9.6.1 Logpoints sind aktivierbar
462
9.6.2 Speichern von Daten mithilfe des FIELDS-Zusatzes
464
9.6.3 Steuern der Aggregation mit dem Zusatz SUBKEY
466
9.7 Wann werden Änderungen an den Aktivierungseinstellungen wirksam?
467
9.8 Weitergehende Funktionalität der ASSERT-Anweisung
469
9.8.1 Betriebsarten
469
9.8.2 Anweisungszusätze für die Protokollierung
471
9.8.3 Systemvarianten für die gruppenübergreifende Aktivierung
472
9.9 Hinweise zur Verwendung von Assertions
474
9.10 Fazit
474
10 Testen mit ABAP Unit
477
10.1 Prinzipien und Vorteile von Modultests
477
10.1.1 Modultests vs. Abnahmetests
478
10.1.2 Modultests sind Entwicklertests
479
10.2 Grundlagen von ABAP Unit
479
10.3 Überprüfen von Testannahmen
481
10.3.1 Assert-Methoden
481
10.3.2 Parameter für Assert-Methoden
483
10.3.3 Assert-Methode fail
483
10.3.4 Assert-Methode abort
484
10.3.5 Spezialisierte Assert-Methoden assert_...
484
10.3.6 Assert-Methode assert_equals
484
10.3.7 Assert-Methoden assert_bound und assert_not_bound
487
10.3.8 Assert-Methode assert_differs
487
10.3.9 Assert-Methoden assert_initial und assert_not_initial
487
10.3.10 Assert-Methode assert_subrc
487
10.3.11 Assert-Methode assert_that
488
10.4 Ausnahmebehandlung in Testmethoden
488
10.5 Beispiel für Modultests einer globalen Klasse
489
10.5.1 Globale Beispielklasse
489
10.5.2 Lokale Testklasse
490
10.6 Ergebnisanzeige
492
10.6.1 Hierarchiedarstellung
492
10.6.2 Fehlerliste
493
10.6.3 Detailsicht
494
10.7 Bereitstellen des Umfeldes
494
10.7.1 Implizite Methoden
495
10.7.2 Delegation
496
10.8 Testisolation
497
10.9 Wiederverwenden von Tests
498
10.10 Massentests mit ABAP Unit
501
10.11 Fazit
503
11 Speicherverbrauchsanalyse mit dem ABAP Memory Inspector
505
11.1 Grundlagen der Speicherverwaltung
506
11.1.1 Dynamische Speicherobjekte in ABAP
508
11.1.2 Löschen von dynamischen Speicherobjekten
511
11.1.3 Funktionsweise des ABAP Garbage Collectors
512
11.1.4 Berechnung des Speicherverbrauchs
514
11.2 Speicherlecks
518
11.2.1 Häufige Ursachen für Speicherlecks oder Speicherverschwendung
518
11.2.2 Speicherverbrauchsanalyse mit dem ABAP Memory Inspector
519
11.2.3 Starke Zusammenhangskomponenten
522
11.3 Verwendung des ABAP Memory Inspectors
524
11.3.1 Analyse des Speicherverbrauchs eines laufenden Programms
525
11.3.2 Erzeugen von Speicherabzügen
528
11.3.3 Analysieren und Vergleichen von Speicherabzügen
529
11.4 Fazit
534
12 Switch und Enhancement Framework - der einfache Weg zu konsolidierten Erweiterungen
535
12.1 Kurzer Überblick über SAP-Branchenlösungen
537
12.2 Entwicklung von SAP-Modifikationen und Erweiterungen
540
12.3 Einführung in das Switch und Enhancement Framework
542
12.3.1 Enhancement Framework
544
12.3.2 Switch Framework
546
12.4 Switch und Enhancement Framework in der Praxis
550
12.5 Fazit
558
Herausgeber und Autoren
559
Index
565