Dieses Buch ist ein unverzichtbares Hilfsmittel, ob als Begleiter während einer Einstiegsschulung oder als Nachschlagewerk. Es erklärt Ihnen alle Techniken, Sprachelemente und Werkzeuge der ABAP-Programmierung. Sie erlernen den Umgang mit ABAP Workbench und ABAP Development Tools und verstehen die wichtigen Konzepte von der objektorientierten Programmierung bis zu den neuen Programmiermodellen für SAP S/4HANA.
Aus dem Inhalt:
- ABAP Workbench und ABAP Development Tools (Eclipse)
- ABAP Dictionary
- Datenbankzugriffe und neue Open SQL-Funktionen
- CDS und BOPF
- Reports und Selektionsbildschirme
- Tests und Performanceanalyse
- Transporte und Jobverwaltung
- Schnittstellen, RFC und Erweiterungstechniken
- Klassen, Methoden, Ereignisse und Interfaces
- ABAP-Programmiermodell für SAP Fiori und ABAP-RESTful-Programmiermodell
- ABAP Channels und ABAP Daemon Framework
- SAP NetWeaver 7. 57
- Nützliche Übersichten und Glossar
Die Fachpresse zur Vorauflage:
Programmierbuch. de: »Wenn du dich ernsthaft mit der ABAP-Programmierung befassen willst, dann ist dieses Buch ein Muss. «
Inhaltsverzeichnis
Einleitung . . . 33
TEIL I. Die Werkzeugkiste des ABAP-Entwicklers . . . 43
1. Die ABAP Workbench . . . 45
1. 1 . . . Die Werkzeuge der ABAP Workbench . . . 46
1. 2 . . . Der Object Navigator . . . 47
1. 3 . . . Der Repository Browser . . . 50
1. 4 . . . Der ABAP Editor . . . 52
2. Die ABAP Development Tools . . . 69
2. 1 . . . SAPs Eclipse-Strategie . . . 69
2. 2 . . . Installation und Konfiguration . . . 71
2. 3 . . . Ein System anbinden . . . 75
2. 4 . . . Einen Report anlegen . . . 76
2. 5 . . . Die Menüleiste und wichtige Tastaturkürzel . . . 77
2. 6 . . . Der Pretty Printer und weitere Quellcodefunktionen . . . 81
2. 7 . . . Die Musterfunktion . . . 81
2. 8 . . . Der Debugger . . . 83
2. 9 . . . Dokumentation mit ABAP Doc . . . 89
2. 10 . . . Refactoring-Funktionen . . . 93
3. Das ABAP Dictionary . . . 97
3. 1 . . . Domänen . . . 99
3. 2 . . . Datenelemente . . . 104
3. 3 . . . Strukturen . . . 107
3. 4 . . . Tabellentypen . . . 109
3. 5 . . . Datenbanktabellen . . . 112
3. 6 . . . Indizes . . . 118
3. 7 . . . Typgruppen . . . 119
3. 8 . . . Views . . . 120
3. 9 . . . Pflegedialoge . . . 124
3. 10 . . . Suchhilfen . . . 128
3. 11 . . . Datenbank-Utility-Tool . . . 131
3. 12 . . . Das Sperrkonzept . . . 132
4. Transaktionen . . . 135
4. 1 . . . Transaktionen anlegen . . . 136
4. 2 . . . Transaktionen mit ABAP aufrufen . . . 140
5. Der Function Builder . . . 143
5. 1 . . . Der Aufbau eines Funktionsbausteins . . . 143
5. 2 . . . Einen Funktionsbaustein anlegen . . . 146
5. 3 . . . Funktionsbausteine testen . . . 147
5. 4 . . . Funktionsgruppen . . . 148
6. Der Class Builder . . . 151
6. 1 . . . Klassen anlegen . . . 151
6. 2 . . . Ausnahmeklassen anlegen . . . 163
6. 3 . . . Interfaces anlegen . . . 164
TEIL II. Der Kern der Sprache ABAP . . . 165
7. Die ABAP-Grundbefehle . . . 167
7. 1 . . . Syntaxregeln . . . 168
7. 2 . . . Kommentare . . . 169
7. 3 . . . Die SAP-Hilfe . . . 170
7. 4 . . . Datendeklaration . . . 171
7. 5 . . . Inline-Deklarationen . . . 183
7. 6 . . . Typdefinitionen . . . 185
7. 7 . . . Initialisierung . . . 188
7. 8 . . . Steueranweisungen . . . 189
7. 9 . . . Rechenoperationen . . . 196
7. 10 . . . Ausgabeanweisungen . . . 199
7. 11 . . . Meldungen . . . 201
7. 12 . . . Mit Zeichenketten arbeiten . . . 203
7. 13 . . . Konstruktorausdrücke . . . 216
7. 14 . . . Operandenpositionen . . . 227
7. 15 . . . Änderungen und Neuerungen bis ABAP 7. 57 . . . 229
8. Mit internen Tabellen arbeiten . . . 231
8. 1 . . . Tabellenarten . . . 232
8. 2 . . . Interne Tabellen definieren . . . 234
8. 3 . . . Interne Tabellen initialisieren . . . 238
8. 4 . . . Zeilen hinzufügen . . . 239
8. 5 . . . Inhalt auslesen . . . 250
8. 6 . . . Einträge löschen . . . 264
8. 7 . . . Inhalt ändern . . . 265
8. 8 . . . Interne Tabellen kopieren . . . 270
8. 9 . . . Interne Tabellen aufbereiten . . . 272
8. 10 . . . Eingebaute Funktionen für interne Tabellen . . . 279
8. 11 . . . Änderungen und Neuerungen im Umfeld von internen Tabellen bis ABAP 7. 57 . . . 281
9. Zugriff auf Datenbanken . . . 285
9. 1 . . . Die fünf goldenen Regeln . . . 286
9. 2 . . . Die Open-SQL-Anweisung SELECT . . . 288
9. 3 . . . Open-SQL-Ausdrücke . . . 315
9. 4 . . . Open-SQL-Funktionen . . . 321
9. 5 . . . Ändernde Open-SQL-Anweisungen . . . 334
9. 6 . . . Sekundäre Datenbankverbindungen . . . 343
9. 7 . . . Natives SQL . . . 343
9. 8 . . . ABAP Core Data Services (CDS) . . . 346
9. 9 . . . Änderungen und Neuerungen im Umfeld von Open SQL bis ABAP 7. 57 . . . 378
9. 10 . . . Änderungen und Neuerungen im Umfeld von CDS bis ABAP 7. 57 . . . 381
10. Zugriff auf SAP-HANA-Entwicklungsobjekte . . . 385
10. 1 . . . Aufruf von SAP-HANA-Views . . . 385
10. 2 . . . Aufruf von Datenbankprozeduren . . . 388
10. 3 . . . ABAP Managed Database Procedures (AMDP) . . . 391
10. 4 . . . Änderungen und Neuerungen beim Zugriff auf SAP-HANA-Entwicklungsobjekte bis ABAP 7. 57 . . . 396
11. Die ABAP-Objects-Syntax . . . 399
11. 1 . . . Grundaufbau einer Klasse . . . 400
11. 2 . . . Sichtbarkeiten . . . 403
11. 3 . . . Datentypen und Attribute . . . 404
11. 4 . . . Methoden . . . 405
11. 5 . . . Konstruktoren . . . 412
11. 6 . . . Ereignisse . . . 415
11. 7 . . . Vererbung . . . 418
11. 8 . . . Klassenarten . . . 420
11. 9 . . . Ausnahmen für Methoden . . . 422
11. 10 . . . Freunde . . . 428
11. 11 . . . Interfaces . . . 428
11. 12 . . . Das ABAP-Objects-Muster . . . 432
11. 13 . . . Casting . . . 433
11. 14 . . . Objekttyp überprüfen . . . 434
11. 15 . . . Änderungen und Neuerungen in ABAP Objects bis ABAP 7. 57 . . . 436
12. Reports und Selektionsbildschirme . . . 437
12. 1 . . . Ereignisse eines Reports . . . 438
12. 2 . . . Eingabeelemente . . . 439
12. 3 . . . Strukturierungselemente für den Selektionsbildschirm . . . 449
12. 4 . . . Ereignisse eines Selektionsbildschirms . . . 453
12. 5 . . . Textelemente . . . 457
12. 6 . . . Nachrichtenklassen . . . 461
12. 7 . . . Einen Report mit ABAP aufrufen . . . 464
12. 8 . . . SPA-/GPA-Parameter . . . 466
13. Strukturierungselemente in ABAP . . . 469
13. 1 . . . Unterprogramme . . . 470
13. 2 . . . Makros . . . 476
13. 3 . . . Includes . . . 478
13. 4 . . . Funktionsbausteine . . . 481
13. 5 . . . Datenkonsistenz . . . 487
14. Die Dynpro-Programmierung . . . 489
14. 1 . . . Dynpros anlegen . . . 490
14. 2 . . . Ablauflogik eines Dynpros . . . 494
14. 3 . . . SAP Control Framework . . . 502
14. 4 . . . Pop-up-Fenster . . . 506
TEIL III. Techniken zur Qualitätssicherung . . . 511
15. Tests und Qualitätskontrolle . . . 513
15. 1 . . . Der ABAP Debugger . . . 513
15. 2 . . . Das Debugging-Skript . . . 532
15. 3 . . . Der Code Inspector . . . 538
15. 4 . . . ABAP Unit . . . 542
15. 5 . . . Das ABAP Test Cockpit . . . 551
16. Werkzeuge und Tipps zur Performanceanalyse . . . 555
16. 1 . . . Richtlinien für die ABAP-Entwicklung . . . 556
16. 2 . . . Transaktion SAT: Laufzeitanalyse . . . 558
16. 3 . . . Transaktion SE30: Die alte Laufzeitanalyse . . . 562
16. 4 . . . SQL-Monitor . . . 564
16. 5 . . . SQL Performance Tuning Worklist . . . 568
16. 6 . . . Transaktion ST05 . . . 569
16. 7 . . . Laufzeitanalyse mithilfe der ABAP-Programmierung . . . 573
16. 8 . . . Application Log . . . 575
17. Das Transportwesen . . . 581
17. 1 . . . Die SAP-Systemlandschaft . . . 582
17. 2 . . . Transportaufträge . . . 585
18. Die Jobverwaltung . . . 597
18. 1 . . . Transaktion SM36: Jobs definieren . . . 597
18. 2 . . . Transaktion SM37: Jobs überwachen und freigeben . . . 604
18. 3 . . . Ereignisse für Jobs . . . 605
18. 4 . . . Jobs mit ABAP definieren . . . 606
TEIL IV. Fortgeschrittene Programmiertechniken . . . 609
19. Tabellenanzeige mit dem SAP List Viewer (ALV) . . . 611
19. 1 . . . Die alte ALV-Anzeige . . . 613
19. 2 . . . Die neue ALV-Anzeige . . . 632
19. 3 . . . SAP List Viewer mit integriertem Datenzugriff (IDA) . . . 647
19. 4 . . . Mehrere ALV-Tabellen auf einer Oberfläche . . . 662
20. SAP-Schnittstellen . . . 665
20. 1 . . . RFC-Funktionsbausteine . . . 666
20. 2 . . . Business-Objekte und BAPIs . . . 668
20. 3 . . . Flat Files . . . 679
20. 4 . . . Webservices (SOAP) . . . 686
20. 5 . . . Batch Input . . . 702
20. 6 . . . Einführung in die Legacy System Migration Workbench (LSMW) . . . 709
21. SAP-Erweiterungen . . . 711
21. 1 . . . User Exits . . . 711
21. 2 . . . Customer Exits . . . 714
21. 3 . . . Klassische Business Add-ins (BAdIs) . . . 718
21. 4 . . . Enhancement Framework . . . 722
21. 5 . . . Neue Business Add-ins (BAdIs) . . . 742
21. 6 . . . Switch Framework . . . 755
21. 7 . . . Suche nach Erweiterungen . . . 757
22. SAP-Formularentwicklung . . . 759
22. 1 . . . Der Druckdialog . . . 761
22. 2 . . . SAPscript . . . 762
22. 3 . . . SAP Smart Forms . . . 770
22. 4 . . . SAP Interactive Forms by Adobe . . . 780
22. 5 . . . Generierung von PDFs . . . 785
23. Business Object Processing Framework . . . 791
23. 1 . . . Aufbau von Geschäftsobjekten . . . 794
23. 2 . . . Anwendung der Consumer-API . . . 805
24. Fortgeschrittene Programmiertechniken . . . 821
24. 1 . . . Object Services . . . 822
24. 2 . . . Mit XML und JSON arbeiten . . . 830
24. 3 . . . Daten im Memory ablegen . . . 835
24. 4 . . . Parallelisierung . . . 842
24. 5 . . . Dynamische Erzeugung von Datenobjekten . . . 844
24. 6 . . . Runtime Type Services (RTTS) . . . 850
24. 7 . . . Dynamisches SQL . . . 860
24. 8 . . . Das ABAP Daemon Framework (ADF) . . . 862
24. 9 . . . ABAP Channels . . . 870
TEIL V. Objektorientierte Programmierung . . . 883
25. Grundlagen der Objektorientierung . . . 885
25. 1 . . . Einführung für ABAP-Entwickler . . . 885
25. 2 . . . Klassen und Objekte . . . 891
25. 3 . . . Instanziierung . . . 894
25. 4 . . . Datenkapselung . . . 897
25. 5 . . . Ereignisse . . . 900
25. 6 . . . Vererbung . . . 902
25. 7 . . . Klassenarten . . . 907
25. 8 . . . Interfaces . . . 908
25. 9 . . . Polymorphie . . . 912
25. 10 . . . Zusammenfassung . . . 914
26. Unified Modeling Language (UML) . . . 917
26. 1 . . . Anwendungsfalldiagramm . . . 918
26. 2 . . . Klassendiagramm . . . 923
27. Anwendungsentwicklung -- wo fange ich an? . . . 933
27. 1 . . . Anforderungsermittlung . . . 935
27. 2 . . . Analyse . . . 940
27. 3 . . . Entwurf . . . 944
28. Entwurfsmuster . . . 947
28. 1 . . . Singleton . . . 948
28. 2 . . . Fabrikmethode . . . 950
28. 3 . . . Model View Controller . . . 955
28. 4 . . . Fassade . . . 963
28. 5 . . . Observer . . . 964
28. 6 . . . Objektorientierte Reports . . . 971
TEIL VI. Ein Blick über den Tellerrand: Was Sie als ABAP-Entwickler sonst noch kennen sollten . . . 975
29. ABAP-Programmiermodelle . . . 977
29. 1 . . . Das klassische Programmiermodell . . . 980
29. 2 . . . Die Innovation für die Zukunft . . . 982
29. 3 . . . Das ABAP-Programmiermodell für SAP Fiori . . . 983
29. 4 . . . Das ABAP RESTful Application Programming Model . . . 987
30. SAP HANA . . . 999
30. 1 . . . Überblick . . . 1000
30. 2 . . . Architektur . . . 1001
30. 3 . . . Migration auf SAP HANA . . . 1005
30. 4 . . . SAP-HANA-Objekte . . . 1006
30. 5 . . . Volltextsuchen . . . 1010
31. SAPUI5, SAP Fiori und SAP Gateway . . . 1019
31. 1 . . . SAPUI5 . . . 1020
31. 2 . . . SAP Fiori . . . 1022
31. 3 . . . OData . . . 1024
31. 4 . . . SAP Gateway . . . 1030
31. 5 . . . Entwicklung eines OData-Service . . . 1032
31. 6 . . . Überblick über die Implementierung der CRUDQ-Methoden . . . 1044
32. Andere SAP-Webtechnologien . . . 1053
32. 1 . . . Business Server Pages (BSP) . . . 1054
32. 2 . . . Web Dynpro ABAP . . . 1061
32. 3 . . . Internet Communication Framework . . . 1079
Anhang . . . 1083
A . . . Das SAP-Flugdatenmodell . . . 1085
B . . . Übersicht der ABAP-Anweisungen . . . 1087
C . . . Eingebaute Datentypen . . . 1097
D . . . Transaktionscodes . . . 1099
E . . . Wichtige Systemfelder . . . 1103
F . . . Technische Tabellen . . . 1105
G . . . Nützliche Funktionsbausteine . . . 1107
H . . . Klassen . . . 1111
I . . . Namenskonventionen für die Programmierung . . . 1113
J . . . Systemglossar und Suche nach fremdsprachigen SAP-Begriffen . . . 1117
K . . . Glossar . . . 1119
Der Autor . . . 1125
Index . . . 1127