13
SAP ® -Praxishandbuch ABAP Teil 1: Konzeption, Entwicklung, Debugging Thomas Stutenbäumer

Teil 1: Konzeption, Entwicklung, Debugging...25 2 Das SAP Data Dictionary Grundlage einer jeden ABAP-Entwicklung sind die Daten, die durch das Programm verarbeitet werden. Vor der

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

SAP®-Praxishandbuch

ABAP

Teil 1: Konzeption, Entwicklung,

Debugging

Thomas Stutenbäumer

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