Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
17
Einleitung
21
1 Grundlagen der Anwendungsprogrammierung
29
1.1 Entwurfsmuster
29
1.2 Entwicklungsumgebung
30
1.3 Anforderungen an SAP-Programme
33
1.4 Vorhandenes clever nutzen
36
1.5 Kosten-Nutzen-Verhältnis
37
1.6 Planung einer Anwendung
38
1.7 Dokumentation
38
1.8 Teamarbeit
39
2 Mit Tabellenpflegedialogen arbeiten
41
2.1 Datenmodell erarbeiten
42
2.2 Tabellenpflegegenerator
48
2.2.1 Berechtigungsgruppen
48
2.2.2 Funktionsgruppe
48
2.2.3 Pflegebilder
49
2.2.4 Generierung des Pflegedialogs
50
2.2.5 Texttabellen anlegen
50
2.2.6 Pflegetransaktion anlegen
54
2.2.7 Kategorientabelle erstellen
56
2.3 Adressdatenpflege integrieren
57
2.4 Zeitpunkte
60
2.4.1 Anlegen eines Pflege-Views
60
2.4.2 Zeitpunkt 05: Hinzufügen eines neuen Eintrags
64
2.4.3 Zeitpunkt 21: Versorgen von verborgenen Feldern
66
2.4.4 Zeitpunkt 23: vor dem Aufruf des Adresspflegebildes
67
2.4.5 Zeitpunkt 19: nach Initialisierung globaler Variablen
68
2.5 Stolperfallen und Hilfestellungen
72
2.6 Einzelne Datensätze gezielt pflegen
75
2.6.1 Funktionsbaustein VIEW_MAINTENANCE_CALL
75
2.6.2 Funktionsbaustein VIEW_MAINTENANCE_SINGLE_ENTRY
76
2.7 Zeitabhängige Pflege-Views
76
2.8 Berechtigungen
80
2.9 Änderungen am Pflegedialog vornehmen
81
2.9.1 Felder hinzufügen oder entfernen
82
2.9.2 Änderung der Speicherart
83
2.9.3 Dynpros nachbearbeiten
84
2.9.4 Table Control vergrößern
85
3 Viewcluster verwenden
89
3.1 Viewcluster definieren
90
3.2 Abhängige Einträge definieren
97
3.3 Viewcluster per Programm aufrufen
103
3.4 Zeitpunkte
104
4 Dialog erstellen
113
4.1 Datenbanktabelle erstellen
114
4.2 Suchhilfe anlegen
117
4.2.1 Eingabehilfe einrichten
120
4.2.2 Elementare Suchhilfe einrichten
124
4.2.3 Suchhilfe erweitern
127
4.2.4 Eigenen Suchhilfe-Exit anlegen
132
4.2.5 Datensätze aus der Ergebnismenge löschen
138
4.2.6 Sammelsuchhilfe verwenden
139
4.3 Modulpool anlegen
143
4.4 Dictionary-Struktur für die Dynpros erstellen
145
4.5 Optionen zur Einbindung von Datenstrukturen
147
4.5.1 TYPE-Referenzierung
149
4.5.2 INCLUDE-Befehl
152
4.5.3 Inkludierung unter Verwendung eines Gruppennamens
152
4.5.4 Umbenannte Includes
154
4.5.5 Umbenannte Includes unter Verwendung eines Gruppennamens
157
4.6 Dynpros anlegen
159
4.7 Abhängige Listboxen
166
4.8 Transaktion anlegen
168
4.9 Felder ein- und ausblenden
169
4.9.1 Feldeigenschaften ändern
169
4.9.2 Laufzeitkomprimierung
175
4.10 Änderungen erkennen
178
4.11 Daten sichern
181
4.12 TextEdit Control für die Texteingabe implementieren
189
5 Komponenten wiederverwenden
195
5.1 Wiederverwendbares Wissen sammeln
197
5.2 Ableiten oder parametrisieren?
199
5.3 GUI Control kapseln
200
5.3.1 Eigenen Button erstellen
201
5.3.2 Basisklasse erstellen
203
5.3.3 Komponente einbinden
208
5.3.4 Dynpro-Komponenten spezialisieren
210
5.4 Subscreen kapseln
212
5.4.1 Standortanzeige kapseln
213
5.4.2 Subscreen anlegen
218
5.4.3 Funktionsbaustein testen
219
5.4.4 Subscreen in Programm einbauen
220
5.5 GUI Control »andocken«
221
5.6 Verwaltung von Reuse-Funktionen
222
6 Mit dem TextEdit Control arbeiten
225
6.1 Datenhaltung und Model
226
6.1.1 Dictionary-Objekte anlegen
226
6.1.2 Model-Klasse anlegen
227
6.2 Controller anlegen
235
6.2.1 Anlegen der Controller-Klasse
236
6.2.2 Weitere Attribute anlegen
237
6.3 Testprogramm entwickeln
244
7 Mit dem Applikationslog arbeiten
249
7.1 Schnittstelle
249
7.2 Begriffsklärung
250
7.3 Transiente Protokolle
251
7.4 Persistente Protokolle
253
7.4.1 Objekt und Unterobjekt anlegen
254
7.4.2 Zugriffsklassen anlegen
256
7.5 Protokolle mit Callbacks
269
7.6 Nachrichten mit Kontext
273
7.7 Protokollausgabe anpassen
275
7.8 Erweiterte Möglichkeiten des Applikationslogs
278
8 Änderungsbelege verwenden
281
8.1 Datenelemente als änderungsrelevant markieren
282
8.2 Änderungsbelegobjekt anlegen
282
8.3 Generierung des Verbuchers
285
8.4 Analyse der generierten Objekte
286
8.5 Testprogramm
290
8.6 Tipps zur Arbeit mit Änderungsbelegen
293
8.6.1 Komplexe Änderungsbelegobjekte
293
8.6.2 Aufbereitung, Anzeige und Archivierung
294
9 Mit Tree Controls arbeiten
295
9.1 Tree-Typen
295
9.1.1 Historische Entwicklung der Baumdarstellung
295
9.1.2 Hilfestellung bei der Wahl und der Implementierung der Tree-Typen
302
9.2 Einheitliches Interface anlegen
303
9.3 Baumdarstellung erzeugen
312
9.3.1 Anforderungen
312
9.3.2 Passendes Tree Control für die Ticketanwendung wählen
313
9.3.3 Klasse für den Teambaum erstellen
316
9.4 Tree Control testen
332
10 Dynamische Dokumente verwenden
337
10.1 Statusanzeige aufbauen
340
10.2 Klasse für die Ereignisbehandlung erstellen
345
10.3 Programmlokale Klassen importieren
346
11 Controls in Dialog einbauen
349
11.1 HTML-Buttons einbauen
349
11.2 Standorte-Subscreen einbauen
354
12 Frameworks verwenden
357
12.1 Klasse zur Ereignisbehandlung
358
12.2 Schubladen verwenden
360
12.3 Eigenes Framework entwickeln
366
12.4 Framework einbinden
375
13 Mit ALV Grid Controls arbeiten
379
13.1 Funktionen des SAP List Viewers
379
13.2 Darstellungsarten
380
13.2.1 Einfache und zweidimensionale Tabellen
380
13.2.2 Hierarchisch-sequenzielle Listen
381
13.2.3 Baumstruktur
382
13.3 Grundlagen und Vorarbeiten zur Erstellung eines ALV Grid Controls
382
13.3.1 Layoutstruktur
383
13.3.2 Layoutvarianten
384
13.3.3 Feldkatalog
385
13.3.4 Styles
387
13.3.5 Pufferkonzept
388
13.3.6 Änderbarkeit des ALV Grid Controls
389
13.3.7 Globale Tabellen
390
13.3.8 Verwendung von Ereignissen
390
13.4 Tabellarische Übersicht erstellen
392
13.4.1 Selektionsparameter an Klasse übergeben
393
13.4.2 Report für die Ticketübersicht erstellen
398
13.4.3 Interface für die Ereignisbehandlung erstellen
408
13.4.4 Eigene Klasse als Verschalung des Controls erstellen
408
13.4.5 ABAP-Dictionary-Struktur für die ALV-Anzeige anlegen
411
13.4.6 Methoden anlegen und implementieren
412
13.4.7 Ereignisbehandler implementieren
422
13.5 Ergebnis der implementierten Funktionen
428
14 Drag & Drop implementieren
433
14.1 Grundlagen
433
14.1.1 Begriffe
434
14.1.2 Drag-&-Drop-fähige Objekte
436
14.1.3 Ereignisse für Drag & Drop
439
14.2 Funktionsweise und Ablauf
440
14.2.1 Ablauf des Drag & Drop
440
14.2.2 Datenübertragung
441
14.3 Beispielanwendung: Drag & Drop in Teambaum und Ticketübersicht
442
14.3.1 Teambaum in die Ticketübersicht integrieren
443
14.3.2 Datenübertragung vorbereiten
445
14.3.3 Anpassung des Teambaums
452
14.3.4 Anpassung der Ticketübersicht
457
15 Formulare erstellen
465
15.1 Möglichkeiten der Formularerstellung
465
15.2 Formularerstellung mit SAP Smart Forms
467
15.3 Formularentwurf
468
15.3.1 Übergabestruktur vorbereiten
468
15.3.2 Elemente des Form Builders
469
15.3.3 Formular anlegen
471
15.3.4 Logo dynamisch einbinden
472
15.3.5 Druck des Dokuments
481
16 Generische Objektdienste verwenden
483
16.1 Umgang mit generischen Objektdiensten
483
16.2 Generische Objektdienste in eigene Programme einbinden
486
16.2.1 Business-Object-Repository-Objekt anlegen
486
16.2.2 Generische Objektdienste für ein Objekt aufrufen
489
16.3 GOS-Anlagen per Programm manipulieren
493
16.3.1 GOS-Anlagen auslesen
494
16.3.2 GOS-Anlage hinzufügen
497
16.4 Ablage der GOS-Anlagen
500
17 E-Mails versenden
501
17.1 Einfacher E-Mail-Versand
502
17.2 Versand einer E-Mail innerhalb der Ticketbearbeitung
506
17.2.1 E-Mail als Text auslesen
507
17.2.2 Implementierung der Methode CREATE_MAIL_DIALOG
511
17.3 E-Mail-Versand als Hintergrundverarbeitung
513
17.3.1 SAP-Link erzeugen
513
17.3.2 E-Mail mit Anhang im Hintergrund erzeugen
515
17.3.3 Anschreiben einbinden/Nutzung von Templates
519
17.4 E-Mails als Smart-Forms-Dokument versenden
522
17.5 E-Mail mit Anhängen versenden
527
18 Dynamisch programmieren
529
18.1 Ansätze und Stufen der dynamischen Programmierung
530
18.2 Einzelnes Feld definieren
534
18.2.1 Daten übergeben
537
18.2.2 Werte prüfen
538
18.2.3 Schaltflächen ausblenden
538
18.2.4 Programmlogik »austricksen«
539
18.2.5 Programm zur Eingabe eines einzelnen Wertes
539
18.2.6 Programm zur Eingabe mehrerer Felder
542
18.3 Variable Felder definieren
547
18.3.1 Variable Felder verwenden
549
18.3.2 Variable Feldwerte speichern
550
18.4 Mehrere Felder definieren
551
18.4.1 Dynamische Variablen definieren
552
18.4.2 Daten in das ABAP Memory exportieren
554
18.4.3 Funktionen kapseln
555
18.4.4 Erfassung der variablen Werte einbauen
562
18.5 Interne Tabelle dynamisch erstellen
565
18.6 Mehrere Werte erfassen
572
18.6.1 Dynamische Datenerfassung kapseln
573
18.6.2 Einbau der dynamischen Datenerfassung
580
19 Mit klassenbasierten Ausnahmen arbeiten
585
19.1 Nachteile des alten Ausnahmekonzepts
586
19.2 Klassenbasierte Ausnahmen
588
19.2.1 Klassenbasierte Ausnahmen definieren
588
19.2.2 Verwendungsstellen klassenbasierter Ausnahmen
590
19.2.3 Ausnahmen auslösen und abfangen
592
19.3 Die Klassenhierarchie
594
19.3.1 Attribute der Ausnahmeklassen
595
19.3.2 Previous
596
19.4 Ausnahmetexte
597
19.5 Ausnahmen abfangen
602
19.5.1 CATCH-Blöcke
602
19.5.2 Verschachtelung von TRY-Blöcken
604
19.6 Wiederaufsetzbare Ausnahmen
606
20 Personalisierung ermöglichen
611
20.1 Personalisierungsobjekt anlegen
612
20.2 Struktur definieren
615
20.3 Dialogbaustein erstellen
616
20.4 Anwendung personalisieren
623
21 Mit Webservices auf das SAP-System zugreifen
631
21.1 SOAP-Webservice erstellen
633
21.1.1 Funktionsgruppe ZBOOK_HTTP anlegen
633
21.1.2 Funktionsbausteine erstellen
633
21.1.3 Webservice für die Funktionsgruppe generieren
636
21.1.4 Webservice im SOA-Management konfigurieren
641
22 Prozesse parallel verarbeiten
647
22.1 Was ist Parallelverarbeitung?
647
22.1.1 Anwendungsgebiete der Parallelverarbeitung
648
22.1.2 Technische Ausführung der Parallelität
649
22.1.3 Voraussetzungen für die Parallelverarbeitung
650
22.1.4 Vor- und Nachteile der Parallelverarbeitung
651
22.2 Planung der Verarbeitungsblöcke
651
22.3 Was sind Prozesse?
653
22.4 RFC-Server-Gruppen definieren
655
22.5 Einen parallelen Prozess entwickeln
656
22.5.1 Prozessinformationen ermitteln
657
22.5.2 Ausführung des Kind-Prozesses prüfen
657
22.5.3 Kind-Prozess starten
658
22.5.4 Daten vom Kind-Prozess empfangen
660
22.6 Wiederverwendbare Klasse erstellen
661
22.6.1 Interface für die Methode ON_TASK_COMPLETE
661
22.6.2 Hilfsklasse für die Parallelverarbeitung anlegen
663
22.7 Funktionsbaustein erstellen
668
22.8 Hauptprogramm implementieren
671
A Wiederkehrende Arbeitsschritte
675
B Die Autoren
707
Index
709