Liebe Besucherinnen und Besucher,

heute ab 15 Uhr feiern wir unser Sommerfest und sind daher nicht erreichbar. Ab morgen sind wir wieder wie gewohnt für Sie da. Wir bitten um Ihr Verständnis – Ihr Team von Sack Fachmedien

Lupa / Treutler | Das neue ABAP-Kochbuch | E-Book | sack.de
E-Book

E-Book, Deutsch, 478 Seiten

Reihe: SAP Press

Lupa / Treutler Das neue ABAP-Kochbuch

Praktische Programmierlösungen für Fortgeschrittene
1. Auflage 2025
ISBN: 978-3-367-10650-9
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Praktische Programmierlösungen für Fortgeschrittene

E-Book, Deutsch, 478 Seiten

Reihe: SAP Press

ISBN: 978-3-367-10650-9
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Dieses Buch präsentiert neue und erprobte Lösungswege für die wichtigsten Aufgaben und Problemstellungen der ABAP-Entwicklung. Erfahrene Entwickler zeigen Ihnen, welche Herangehensweisen sich in der täglichen Praxis als einfach, schnell und praktikabel erwiesen haben. Dabei stehen die neuen Programmiermodelle und -Frameworks ABAP Cloud und ABAP RESTful Application Programming Model im Fokus. Mit zahlreichen Workshops und »Rezepten« führt Sie das Buch Schritt für Schritt durch die wichtigsten Programmiertechniken und -Tools.

Aus dem Inhalt:

  • Systemfelder und Laufzeitinformationen
  • Customer Data Browser
  • Anwendungslog
  • Änderungsbelege
  • Sperrobjekte
  • Nummernkreisobjekte
  • Datei-Upload
  • Hintergrundverarbeitung
  • Parallelisierung
  • E-Mail-Versand
  • Dokumentation


Fabian Lupa ist seit 2022 als Senior Software Engineer und Trainer bei adesso tätig. Er verantwortet dort schwerpunktmäßig die Aus- und Weiterbildung von Mitarbeitenden im Kontext der ABAP-Entwicklung sowie das Developer Enablement in Kundenprojekten. Zuvor absolvierte er eine Ausbildung zum Fachinformatiker mit berufsbegleitendem Studium der Wirtschaftsinformatik und war sechs Jahre inhouse als Anwendungsentwickler in den Bereichen SAP Finance und SAP Retail tätig. Er engagiert sich in der Open Source ABAP Community und gestaltet aktiv moderne Entwicklungsrichtlinien mit. Einen besonderen Schwerpunkt legt er auf Clean Code und Unit Tests sowie die Automatisierung von Entwicklungsprozessen mit modernen Tools.
Lupa / Treutler Das neue ABAP-Kochbuch jetzt bestellen!

Weitere Infos & Material


Einleitung ... 15  1.  Einführung in die moderne ABAP-Entwicklung ... 21  1.1 ... Die Rolle von ABAP in der SAP-Entwicklung ... 22  1.2 ... Das neue Entwicklungsmodell für ABAP ... 24  1.3 ... Die ABAP-Sprachversion ... 26  1.4 ... Über Release-Kontrakte freigegebene APIs ... 31  1.5 ... Entwicklungsumgebung ... 32  1.6 ... Programmiermodell ... 33  1.7 ... Einsatzszenarien für ABAP Cloud ... 35  1.8 ... ABAP-Releases On-Premise und in der Cloud ... 38  1.9 ... Einschränkungen abhängig vom Release und der Laufzeitumgebung ... 40  1.10 ... Zusammenfassung ... 41  2.  Das Anwendungsszenario ... 43  2.1 ... Konzept der Beispielanwendung ... 44  2.2 ... Erstellung von Dictionary-Objekten ... 47  2.3 ... Generierung einer RAP-Anwendung ... 55  2.4 ... Erstellung von Assoziationen ... 70  2.5 ... Anwendungsszenario aus Anwendersicht ... 77  2.6 ... Zusammenfassung ... 81  3.  Umgang mit Systemfeldern und Laufzeitinformationen ... 83  3.1 ... Systemfelder in ABAP Cloud ... 84  3.2 ... Überblick über die verfügbaren APIs ... 87  3.3 ... Zugriff auf Zeitinformationen ... 87  3.4 ... Zugriff auf Benutzerdaten ... 95  3.5 ... Zugriff auf technische Informationen der aktuellen Programmausführung ... 97  3.6 ... Zugriff auf Meldungen ... 99  3.7 ... Zugriff auf Systeminformationen ... 100  3.8 ... Zusammenfassung ... 103  4.  Tabellenanalyse ... 105  4.1 ... Tabellenanalyse mit dem Kundendaten-Browser ... 106  4.2 ... Tabellenanalyse mit den ABAP Development Tools ... 113  4.3 ... Zusammenfassung ... 117  5.  Tabellenpflege mit Business Configuration Maintenance Objects ... 119  5.1 ... Überblick über das neue Tabellenpflegekonzept ... 120  5.2 ... Customizing-Tabellen anlegen ... 122  5.3 ... Business Configuration App generieren ... 134  5.4 ... Berechtigungen vergeben ... 142  5.5 ... Konfiguration aus Anwendersicht ... 147  5.6 ... Einstellungen im Business Configuration Maintenance Object ... 154  5.7 ... Lebenszyklusverwaltung mit Deprecation ... 156  5.8 ... Dokumentation von Business Configuration Maintenance Objects ... 159  5.9 ... Zusammenfassung ... 161  6.  Anwendungsprotokolle ... 163  6.1 ... Anwendungsprotokoll für das Anwendungsbeispiel ... 164  6.2 ... Pflege von Anwendungsprotokollobjekten und unterobjekten ... 168  6.3 ... Die BALI-API ... 172  6.4 ... Erstellung eines Protokolls ... 174  6.5 ... Speichern eines Protokolls ... 186  6.6 ... Protokolle anzeigen ... 188  6.7 ... Zusammenfassung ... 190  7.  Änderungsbelege ... 193  7.1 ... Änderungsbelegobjekte in den ABAP Development Tools pflegen ... 195  7.2 ... Protokollierung über die generierte Klasse aufrufen ... 199  7.3 ... Änderungsbelegfortschreibung mit dem ABAP RESTful Application Programming Model ... 207  7.4 ... Änderungsbelege anzeigen ... 213  7.5 ... Zusammenfassung ... 214  8.  Sperrobjekte ... 215  8.1 ... Sperrverfahren im Datenbankumfeld ... 216  8.2 ... Sperren auf der ABAP-Plattform ... 219  8.3 ... Verwendung von Sperrobjekten ... 220  8.4 ... API für Sperrobjekte ... 222  8.5 ... Integration in das Anwendungsbeispiel ... 229  8.6 ... Zusammenfassung ... 233  9.  Nummernkreisobjekte ... 235  9.1 ... Nummernkreise in SAP-Systemen ... 236  9.2 ... Pflege eines Nummernkreises ... 236  9.3 ... API für Nummernkreisobjekte ... 241  9.4 ... Nummernvergabe im ABAP RESTful Application Programming Model ... 245  9.5 ... Zusammenfassung ... 254

10.  Hintergrundverarbeitung ... 257  10.1 ... Entwicklung einer Ausführungslogik ... 258  10.2 ... Erstellung von Anwendungsjobs ... 263  10.3 ... Prüfungen ... 273  10.4 ... Protokollierung ... 278  10.5 ... Zusammenfassung ... 280

11.  E-Mail-Versand ... 283  11.1 ... Konfiguration und Überwachung des E-Mail-Versands ... 284  11.2 ... ABAP Cloud API für den E-Mail-Versand ... 287  11.3 ... Integration des Newsletter-Versands in das Rezeptportal ... 294  11.4 ... Zusammenfassung ... 300

12.  Parallelisierung von Anwendungslogik ... 303  12.1 ... Parallelisierung auf der ABAP-Plattform ... 305  12.2 ... Die Klasse »CL_ABAP_PARALLEL« ... 306  12.3 ... Refactoring des Anwendungsbeispiels ... 310  12.4 ... Zusammenfassung ... 322

13.  Datei-Upload ... 325  13.1 ... Erweiterung des Anwendungsbeispiels um die Option des Datei-Uploads ... 326  13.2 ... Zusammenfassung ... 334

14.  Umgang mit Excel-Dateien ... 335  14.1 ... Erstellen einer Excel-Datei ... 339  14.2 ... Auslesen einer Excel-Datei ... 351  14.3 ... Zusammenfassung ... 361

15.  Dokumentation von Entwicklungsobjekten ... 363  15.1 ... ABAP Doc ... 364  15.2 ... Knowledge Transfer Document ... 371  15.3 ... Zusammenfassung ... 378

16.  Berechtigungen ... 379  16.1 ... Berechtigungsprüfungen für Leseoperationen ... 380  16.2 ... Berechtigungsprüfungen für Änderungsoperationen ... 386  16.3 ... Zusammenfassung ... 394

17.  Nutzung von APIs ... 397  17.1 ... Die passenden APIs finden ... 398  17.2 ... RAP-basierte APIs per EML aufrufen ... 412  17.3 ... Zusammenfassung ... 416

18.  Erweiterungen in ABAP Cloud ... 419  18.1 ... Key-User-Erweiterbarkeit ... 420  18.2 ... Entwicklererweiterbarkeit ... 442  18.3 ... Zusammenfassung ... 451

19.  Ausblick ... 453  Anhang ... 453  A ... Installation der Beispielanwendung ... 461  B ... Namenskonventionen für die Beispielanwendung ... 463  C ... Installation der ABAP Development Tools ... 467  Das Autorenteam ... 469  Index ... 471


Einleitung


ABAP entwickelt sich weiter, und das bereits seit einigen Jahren in einem rasanten Tempo. Mit dem ABAP RESTful Application Programming Model (RAP) bietet SAP seit 2018 ein zunehmend ausgereiftes Framework für die Entwicklung an. Immer mehr Anwendungen im SAP-Standard werden in dieses Programmiermodell überführt. In Kombination mit ABAP Core Data Services (ABAP CDS) und SAP Fiori Elements wird Anwendungsverhalten in eigener Syntax modelliert und nicht – wie in früheren Programmiermodellen – direkt in ABAP implementiert. Zeitgleich zieht ABAP Cloud als Entwicklungsmodell für moderne Anwendungen ein, das sowohl in On-Premise- als auch in Cloud-Systemen verfügbar ist. Mit dem Clean-Core-Ansatz wird ABAP Cloud auch in On-Premise-Systemen forciert, womit sich die Rolle von klassischem ABAP zunehmend ändert.

Vielleicht haben Sie sich bei Ihrer Arbeit als Entwicklerin oder Entwickler bereits mit den genannten Techniken vertraut machen können und kennen auch ABAP in Cloud-Systemen. Vielleicht steht Ihnen die Migration nach SAP S/4HANA aber auch noch bevor, Sie sind technologisch bislang auf ABAP 7.50 mit SAP ERP 6.0 EhP8 beschränkt und fragen sich, was da auf Sie zukommt und was sich in den letzten zehn Jahren getan hat.

Der Kenntnisstand von ABAP-Entwicklerinnen und -Entwicklern könnte derzeit nicht weiter auseinanderliegen. Darüber hinaus stellt sich die Upgrade-Problematik noch für viele Unternehmen. Entsprechend schwierig gestalten sich die Themen Fort- und Weiterbildung und Enablement von Entwicklerinnen und Entwicklern für den Projekteinsatz. Wir möchten Sie in diesem Buch dort abholen, wo Sie gerade stehen, und Ihnen die aktuellen technischen Lösungen für immer wiederkehrende Problemstellungen vorstellen, unabhängig davon, wo in dem beschriebenen Spektrum Sie sich gerade befinden. Unser Buch richtet sich daher an ABAP-Entwicklerinnen und -Entwickler, die sich für moderne Lösungen interessieren und ihre Software qualitativ hochwertig entwickeln, sich auf deren möglichen Betrieb in der Cloud vorbereiten und dabei den Clean-Core-Ansatz einhalten möchten.

Sie werden in diesem Buch keine Marketingfloskeln finden. Es wurde von Entwicklern für Entwicklerinnen und Entwickler geschrieben. Wir stellen Ihnen Technologien vor, mit denen Sie wiederkehrende Probleme mit State-of-the-Art-Methoden lösen können, und ordnen diese im Vergleich zu bisherigen Lösungsansätzen ein. Uns ist es dabei besonders wichtig, dass Sie die Lösungen sowohl in On-Premise- als auch in Cloud-Systemen anwenden können. Daher beschränken wir uns auf den Funktionsumfang, der in SAP S/4HANA 2023 unter Nutzung von ABAP Cloud verfügbar ist. Das heißt, dass Sie die vorgestellten Lösungen in allen aktuellen ABAP-Laufzeitumgebungen einsetzen können: SAP S/4HANA 2023 (On-Premise-Version), SAP S/4HANA Cloud Private Edition 2023, SAP S/4HANA Cloud Public Edition und SAP BTP ABAP Environment. Viele neuere Funktionen sind jedoch stark release-abhängig, auf niedrigeren ABAP-Releases als 7.58 kann es daher Einschränkungen geben.

Um dem Inhalt dieses Buches optimal folgen zu können, sollten Sie mit den Grundlagen der ABAP-Programmiersprache inklusive ABAP Objects vertraut sein und etwas Praxiserfahrung gesammelt haben. Sie sollten auch bereits die ABAP Development Tools (ADT), also die Eclipse-basierte ABAP-Entwicklungsumgebung, den Nachfolger der ABAP Workbench, kennen, da nur diese Entwicklungsumgebung für alle Laufzeitumgebungen verfügbar ist und die Objekttypen, die hier eingesetzt werden, in vollem Umfang unterstützt. Tipps und Tricks zum Umgang mit den ABAP Development Tools sowie Schritt-für-Schritt-Anleitungen für die einzelnen Techniken finden Sie in diesem Buch dennoch. Denn der Wechsel von Transaktion SE80 zu den ABAP Development Tools bedeutet gerade für erfahrene ABAP-Entwicklerinnen und Entwickler oft eine große Umgewöhnung. Hinweise zur Installation der ABAP Development Tools finden Sie in Anhang C.

Die Kapitel dieses Buches greifen jeweils eine konkrete Problemstellung auf und präsentieren dazu eine aktuelle Lösung. Dabei sind die Kapitel inhaltlich in der Regel voneinander unabhängig zu lesen. Sie können das Buch daher regulär von vorne nach hinten durchlesen, um sich einen umfassenden Überblick zu verschaffen, oder bei akutem Informationsbedarf zu einem der Themen direkt zu dem entsprechenden Kapitel springen. Über die Kapitel hinweg verwenden wir ein übergreifendes Anwendungsbeispiel, das den betriebswirtschaftlichen Bezug herstellt. Dabei haben wir besonders darauf geachtet, ein Beispiel zu wählen, das realitätsnah, nicht zu einfach, aber auch nicht zu komplex ist. Die einzelnen Kapitel erweitern diese Anwendung Stück für Stück, sodass Sie unseren Entwicklungsschritten folgen können.

Kapitel 1, »Kapitel 1«, dient Ihnen als Einstieg in die technischen Konzepte, die in modernen ABAP-basierten Anwendungen relevant sind, und ordnet die ABAP-Entwicklung in das aktuelle SAP-Produktportfolio ein.

In Kapitel 2, »Kapitel 2«, beschreiben wir das betriebswirtschaftliche Beispiel, an dem wir uns in den folgenden Kapiteln orientieren, und erläutern, wie die Beispielanwendung technisch aufgebaut ist.

Kapitel 3, »Kapitel 3«, ist das erste Kapitel, in dem konkrete Techniken vorgestellt werden – hier der Zugriff auf Informationen der ABAP-Laufzeitumgebung mit modernen Klassen und Anweisungen.

In Kapitel 4, »Kapitel 4«, lernen Sie, wie Sie Anwenderinnen und Anwendern, Key-Usern oder Mitarbeitenden der Anwendungsbetreuung in einer SAP-Fiori-App Einsicht in Tabelleninhalte geben können. Sie erfahren außerdem, wie Sie als Entwicklerin oder Entwickler Datenbanktabelleninhalte mit den ABAP Development Tools analysieren können.

Kapitel 5, »Kapitel 5«, zeigt Ihnen, wie Sie eine Pflegeoberfläche für Customizing-Einstellungen in Form einer SAP-Fiori-App entwickeln können. Eine solche App kann als Nachfolger der mit dem Tabellenpflegegenerator erstellten Pflegedialoge gesehen werden.

Kapitel 6, »Kapitel 6«, geht auf die Protokollierung von Benutzeraktionen und Prozessschritten mit dem Anwendungsprotokoll ein. Sie lernen den neuen Objekttyp und die neuen Klassen kennen, mit denen Sie die alten Funktionsbausteine für die Protokollierung ablösen können.

In Kapitel 7, »Kapitel 7«, zeigen wir Ihnen die klassenbasierte Änderungsprotokollierung, mit der Sie Änderungen an Stamm- und Bewegungsdaten nachvollziehen können, sowie deren Integration in RAP-Business-Objekte.

In Kapitel 8, »Kapitel 8«, lernen Sie die neue klassenbasierte API zum Sperren von Objekten sowie das optimistische und pessimistische Sperrkonzept kennen. Sie erfahren ebenfalls, wie Sie Sperrobjekte in RAP-basierte Anwendungen integrieren können.

Kapitel 9, »Kapitel 9«, geht auf eben diese ein und zeigt, wie Sie mit der neuen, klassenbasierten Zugriffsmöglichkeit Nummern für Primärschlüsselfelder ziehen oder diese prüfen können. Sie erhalten außerdem einen Einblick in die programmatische Pflege von Nummernkreisobjekten und -intervallen.

In Kapitel 10, »Kapitel 10«, stellen wir die Anwendungsjobs vor, das cloud-fähige Nachfolgekonzept der klassischen, reportbasierten Batch-Jobs. Sie dienen zur regelmäßigen Ausführung von Anwendungen.

In Kapitel 11, »Kapitel 11«, erfahren Sie, wie Sie E-Mails aus dem SAP-System verschicken können – inklusive Anlagen und mithilfe neuer Klassen.

Kapitel 12, »Kapitel 12«, zeigt Ihnen, wie Sie in Ihren Programmen Performance durch die Parallelausführung von Teilaufgaben mit mehreren Prozessen gewinnen können – ganz ohne eigene Funktionsbausteine direkt in ABAP Objects.

Auf das Hochladen von Dateien wird in Kapitel 13, »Kapitel 13«, eingegangen. Darin erfahren Sie, wie Sie mit dem ABAP RESTful Application Programming Model und SAP Fiori Elements Anwenderinnen und Anwender das Hochladen von Dateien ermöglichen und die Dateiinhalte in Ihren Anwendungen konsumieren können.

In Kapitel 14, »Kapitel 14«, lernen Sie, wie Sie mithilfe der XCO-Bibliothek XLSX-Dateien lesen und erzeugen können. Dazu werden der Datei-Upload und -Download aus dem vorangegangenen Kapitel aufgegriffen.

Kapitel 15, »Kapitel 15«, zeigt Ihnen die aktuellen Möglichkeiten zur Dokumentation von Entwicklungsobjekten mit ABAP Doc und...


Treutler, Sven
Sven Treutler ist ABAP-Entwickler aus Leidenschaft. Seit 2010 beschäftigt er sich mit Themen rund um die ABAP-Entwicklung bei der rku.it GmbH in Herne. Dort kümmert er sich um neue Technologien und Qualitätssicherung im ABAP-Umfeld. Seinen Masterabschluss machte er an der Westfälischen Hochschule in Gelsenkirchen. Privat besucht er schöne Orte mit seiner Frau, ist stolzer Katzenbesitzer und schwarz-gelber Fußballanhänger.

Lupa, Fabian
Fabian Lupa ist seit 2022 als Senior Software Engineer und Trainer bei adesso tätig. Er verantwortet dort schwerpunktmäßig die Aus- und Weiterbildung von Mitarbeitenden im Kontext der ABAP-Entwicklung sowie das Developer Enablement in Kundenprojekten. Zuvor absolvierte er eine Ausbildung zum Fachinformatiker mit berufsbegleitendem Studium der Wirtschaftsinformatik und war sechs Jahre inhouse als Anwendungsentwickler in den Bereichen SAP Finance und SAP Retail tätig. Er engagiert sich in der Open Source ABAP Community und gestaltet aktiv moderne Entwicklungsrichtlinien mit. Einen besonderen Schwerpunkt legt er auf Clean Code und Unit Tests sowie die Automatisierung von Entwicklungsprozessen mit modernen Tools.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.