INHALTSVERZEICHNIS
3
Inhaltsverzeichnis
Vorwort 7
1 Anforderungen und die Konzeption einer Lösung 13
1.1 Eine Anforderung aus der Praxis 15
1.2 Vorüberlegungen zur Umsetzung der Anforderungen 16
1.3 Das Grob-Konzept der Lösung 18
1.4 Das Detail-Konzept der Lösung 20
2 Das SAP Data Dictionary 25
2.1 Die SE11 – Einstieg zum Dictionary 25
2.2 Tabelleneigenschaften 28
2.3 Tabellenindizes 33
2.4 Fremdschlüssel 38
2.5 Währungs- und Mengenfelder 39
2.6 Append-Strukturen 40
2.7 Datenbanktabelle ZRAHMENVERTRAG 43
2.8 Erweiterungskategorie von Tabellen und Strukturen 46
2.9 View anstelle von Select mit Join-Option 48
2.10 Konvertierungsroutinen in Domänen 53
2.11 Der Tabellenpflegegenerator 56
2.12 Suchhilfen 69
2.13 Sperrobjekte und Sperrbausteine 98
2.14 Das Datenbank-Utility 106
2.15 Ändern von Tabelleninhalten 109
2.16 Wer hat wann einen Tabelleninhalt geändert? 118
INHALTSVERZEICHNIS
4
3 Richtig debuggen 123
3.1 Klassischer und neuer ABAP-Debugger 123
3.2 Debugger starten, beenden und wechseln 127
3.3 Breakpoint bei Anweisung – erste Wahl bei der Fehlersuche 130
3.4 Watchpoint 134
3.5 Rückwärtsbewegung im Debugger 136
3.6 Programmverlauf im Debugger – Der ABAP-Stack 138
3.7 Lokale und globale Variablen 140
3.8 Tabelleninhalte ändern 144
3.9 Spezielles Debuggen 147
4 ABAP-Entwicklung 169
4.1 Dokumentation von Programmen 169
4.2 Strukturierung und Lesbarkeit von Programmen 175
4.3 Das Error-Handling in Programmen 179
4.4 Die erweiterte Programmprüfung 186
4.5 Die Versionsverwaltung 193
4.6 Quellcode-Vergleich verschiedener Programme 198
4.7 Protokollierung der Programmverwendung 200
4.8 Arbeitsaufwendig – Bearbeitung von Zeitscheiben 204
4.9 Der Datentyp TIMESTAMP und TIMESTAMPL 207
4.10 Feldsymbole und der ASSIGN-Befehl 210
4.11 Die perfekte Ausgabe – ALV-Grid-Control 214
4.12 Der Download und Upload von Daten 244
4.13 ABAP-Coding in Tabellen speichern und aus Tabellen lesen 261
4.14 Der E-Mail-Versand aus SAP 262
4.15 »Dirty Assign« 270
4.16 Auf den Verbucher warten 274
INHALTSVERZEICHNIS
5
4.17 Änderungsbelege schreiben 277
4.18 Dynamische Select-Statements 284
4.19 Nummernkreise und die Transaktion SNRO 287
4.20 Call Transaction und die Transaktion SM35 292
5 Was bisher erreicht wurde 307
A Der Autor 313
B Beispiel-Programme 314
C Wichtige SAP-Transaktionen 316
D Wichtige SAP-Datenbanktabellen 317
E BDC_OKCODE 319
F Index 320
G Disclaimer 324
25
2 Das SAP Data Dictionary
Grundlage einer jeden ABAP-Entwicklung sind die Daten, die
durch das Programm verarbeitet werden. Vor der ersten Pro-
grammierzeile muss sich der Entwickler im Klaren sein, wo die zu
bearbeitenden Daten zu finden sind und in welcher Form sie im
SAP-System gespeichert werden.
Ein SAP-System verfügt über Zigtausende von Datenbanktabellen.
Diese enthalten Daten oder werden als Prüftabellen für Einträge in
den Datenbanktabellen verwendet. Um den Überblick über diese
Informationsfülle zu behalten, wurde das Data Dictionary als das
zentrale Hilfsmittel zur Verfügung gestellt.
Im SAP Data Dictionary werden Informationen über Tabellen und
Datenstrukturen und ihren Beziehungen untereinander verwaltet. Es
dient u. a. dazu, Tabellen anzulegen, Felder zu definieren und ihnen
Datentypen zuzuweisen.
Der geübte Umgang mit diesem Data Dictionary ist eine grundlegen-
de Voraussetzung für einen ABAP-Entwickler. Es ist mit der Transak-
tion SE11 aufzurufen (siehe Abbildung 2.1).
2.1 Die SE11 – Einstieg zum Dictionary
Das Data Dictionary ermöglicht das Anlegen, Ändern, Prüfen, Aktivie-
ren, Löschen und Kopieren von
Tabellen,
Views,
Datentypen (Datenelementen, Strukturen und Tabellentypen),
Typgruppen,
Domänen,
DAS SAP DATA DICTIONARY
26
Suchhilfen,
Sperrobjekten.
Darüber hinaus bietet es eine Reihe von Werkzeugen für das Festle-
gen von Eigenschaften der Dictionary-Objekte, ihre Erweiterung,
Verwendung und Umfeldanalyse.
Abbildung 2.1: Die Transaktion SE11 – das Data Dictionary
Umfeldanalyse
Über das Icon gelangen Sie zur Umfeldanalyse
eines konkreten Dictionary-Objektes. Die Umfeld-
analyse zeigt Ihnen dessen Beziehungen zu anderen
Dictionary-Objekten auf (siehe Abbildung 2.2).
DAS SAP DATA DICTIONARY
27
Abbildung 2.2: Umfeldanalyse von Tabellen
Verwendungsnachweis
Mit dem Verwendungsnachweis (Icon ) können
Sie feststellen, in welchen SAP-Objekten (Program-
men, Klassen, etc.) ein Dictionary-Objekt eingesetzt
wird. Abbildung 2.3 zeigt dies am Beispiel eines Ver-
wendungsnachweises für die Tabelle BUT000 (Ge-
schäftspartner).
DAS SAP DATA DICTIONARY
28
Abbildung 2.3: Verwendungsnachweis von Tabellen
2.2 Tabelleneigenschaften
Besitzt eine Tabelle wie in Abbildung 2.4 als erstes Schlüsselfeld das
Feld »MANDT« bzw. »CLIENT« mit dem DATENELEMENT »MANDT«,
so ist die Tabelle mandantenabhängig. Das bedeutet, dass die jewei-
ligen Tabelleneinträge nur in dem genannten SAP-Mandanten sicht-
bar sind.
DAS SAP DATA DICTIONARY
29
Abbildung 2.4: Die mandantenabhängige Tabelle BUT000
Tabellen ohne dieses Schlüsselfeld sind mandantenübergreifend bzw.
mandantenunabhängig, d. h., die Tabelleneinträge sind in jedem
SAP-Mandanten des SAP-Systems sichtbar und damit auch in jedem
änderbar (siehe Abbildung 2.5).
Abbildung 2.5: Die mandantenunabhängige Tabelle TADIR
INDEX
320
F Index
A ABAP-Codezeilen 261
ALV-Grid-Control 215
Anwenderfunktionen 224
Ausgabe 217
Beispielprogramme 226
Dialogverarbeitung 226
Doppelklick 230
Ereignisse 243
Feldkatalog 218
Layout 221
Listverarbeitung 215
Änderungsbelege 277
Belegobjekt 278
Tabelle CDHDR 283
Tabelle CDPOS 283
Application-Server
Verzeichnis 246
Assign 212
Feldsymbol zuweisen 212
in Loop-Schleife 213
B BAPI 160
BOR 160
Breakpoint 129
bei Anweisung 134
bei Message 132
C Call Transaction 303
Commit Work 277
Custom Controls 214
Customizing-Include 41
D Data Dictionary 25
Transaktion SE11 26
Umfeldanalyse 26
Verwendungsnachweis 27
Daten ändern
Debugger 114
Nachvollziehen 118
Protokollierung 113
SE16N 109
Datenbank-Optimizer 38
Datenbank-Utility 106
Datenmodell 18
Debugger
/h 123
/hs 150
=dbug 157
ABAP-Stack 139
ändern von Variablen 142
BOR-Methoden 164
Enhancements 166
globale Variable 144
Hintergrund-Programm 152
lokale Variable 142
INDEX
321
Neuer Debugger 127
Pop-up-Screen 150
Rücksprung 136
Sprung zur Anweisung 137
Starten 127
Systemdebugger 147
Tabelleninhalt ändern 144
Variablenbereich 140
Verarbeitungsblöcke 139
Werkzeug 145
Dequeue
Ensperrbaustein 103
Dirty Assign 270
Domäne 53
Ausgabeeigenschaften 56
Konvertierungsroutine 55
Wertebereich 76
Wertetabelle 76
Download 245
Datenformate 244
Duplicate Key 277
Dynamische Programmierung
284
Dynpro 230
Ablauflogik 231
Dynprotyp 231
Eigenschaften 231
Elementliste 231
Layout-Editor 233
OK_CODE 237
PAI-Modul 241
PBO-Modul 238
E Endlosschleife 156
Enqueue
Sperrbaustein 103
F F4-Hilfe 69
Feldsymbol 210
Deklaration 212
Typisierung 210
Fremdschlüssel 38
Kardinalität 38
G GUI-Status 238
I Index 34
Ausschlussliste 36
DB-Status 36
Einschlussliste 36
Indexkennung 34
kundeneigener Index 34
SAP-Standardindex 34
K Konzept
Detailkonzept 20
Grobkonzept 18
Realisierungskonzept 23
M Mailversand aus SAP 262
Sendeaufträge 266
Transaktion SCOT 262
Message-Befehl 180
Fehlertyp 183
Nachrichtenklasse 181
Raising 181
INDEX
322
N Nummernkreis 287
Intervall 289
Nummernkreisobjekt 289
Nummernstand 289
P Programm
Dokumentation 169
Eigenschaften 170
Eingabeparameter 172
Error-Handling 179
erweiterte Prüfung 186
Inline-Dokumentation 175
Löschen von
Tabelleneinträgen 276
Online-Dokumentation 173
Pretty Printer 177
Protokollierung der
Verwendung 200
Remote-Vergleich 197
Selektionsbild 170
Strukturierung, Lesbarkeit
175
Titel 170
Versionsverwaltung 193
Prozessübersicht
SM50 155
S SAP Control Framework 214
SAP-Verbucher 274
Select
Inner Join 53
Join 48
Sperren
Dequeue 100
Enqueue 100
Sperreinträge löschen 100
Sperrobjekte 98
Sperrparameter 102
Sperrtabelle 99
Sperrtypen 98
Split-Screen Editor 194
Suchhilfe 69
Append-Suchhilfe 78
ausblenden 80
Elementare Suchilfe 72
Hierarchie 70
inkludierte Suchhilfe 77
modifikationsfreie Änderung
78
Parameterzuordnung 87
Sammelsuchhilfe 72
Suchhilfe-Exits 83
Übergabe von Werten 93
SYST
Struktur für Systemwerte
184
T Tabelle 28
Änderbarkeit 31
Anwendungstabelle 30
Append-Strukturen 40
Auslieferungsklasse 30
Customizingtabelle 30
Datenart 31
Erweiterungskategorie 46
Größenkategorie 31
Index 33
kundeneigene Tabelle 43
mandantenabhängig 28
mandantenunabhängig 29
INDEX
323
Pflegeeigenschaften 30
Prüftabelle 30
Pufferung 31
Schlüsselfeld 28
technische Eigenschaften
31
Umsetzen 107
Tabellenpflegegenerator 56
Modifikation 59
Pflegebild 59
Zeitpunkte 62
Tabellenpflegetransaktion 67
Transaktionsaufzeichnung
293
Befehle 303
Programm generieren 299
Transport Organizer 118
U Upload 252
Datenformate 244
V View 49
Datenbank-View 52
Eigenschaften 52
Help-View 52
Pflege-View 52
Projektions-View 52
W Währungs- und Mengenfelder
39
Watchpoint 134
Z Zeitscheiben 21
Zeitstempel 207
TIMESTAMP 207
TIMESTAMPL 207
UTC-Konvertierung 210