„ABAP“ – Versionsunterschied
[ungesichtete Version] | [gesichtete Version] |
Keine Bearbeitungszusammenfassung |
Aka (Diskussion | Beiträge) |
||
(369 dazwischenliegende Versionen von mehr als 100 Benutzern, die nicht angezeigt werden) | |||
Zeile 1: | Zeile 1: | ||
{{Dieser Artikel|beschreibt die Programmiersprache. Für den Betriebsstellencode der DB siehe [[Bahnhof Hamburg-Barmbek]].}} |
|||
{{Infobox_Software| |
|||
Name= ABAP |
|||
{{Infobox Programmiersprache |
|||
|Screenshot= |
|||
| Name = ABAP |
|||
|Beschreibung= proprietäre Programmiersprache |
|||
| Logo = |
|||
|Hersteller= [[SAP AG]] |
|||
| Beschreibung = proprietäre Programmiersprache |
|||
|AktuelleVersion= 7.0 |
|||
| Paradigma = [[Objektorientiert]], prozedural |
|||
|AktuelleVersionFreigabeDatum= [[2004]] |
|||
| Designer = |
|||
|Betriebssystem= [[Microsoft Windows|Windows]], [[Linux]], [[Mac OS X]], uvm. |
|||
| Entwickler = [[SAP SE]] |
|||
|Kategorie= 4GL-Sprache |
|||
| Erscheinungsjahr = 1983 |
|||
|Lizenz= proprietär |
|||
| AktuelleVersion = Die Programmiersprache hat keine eigene<br />Versionierung, sondern ist identisch mit der<br />Version des zugrundeliegenden Produktes,<br />s. u. [[#Sprachversionen und Sprachumfang|Sprachversionen und<br />Sprachumfang]] |
|||
|Deutsch= ja |
|||
| AktuelleVersionFreigabeDatum = 12. Oktober 2022 |
|||
|Website= [http://www.sap.com/ www.sap.com] |
|||
| AktuelleVorabVersion = |
|||
| AktuelleVorabVersionFreigabeDatum = |
|||
| Typisierung = |
|||
| Beeinflusste = |
|||
| Betriebssystem = [[Microsoft Windows|Windows]], [[Unix]]/[[Linux]], [[AIX]], [[HP-UX]], [[Solaris (Betriebssystem)|Solaris]], [[OS/400]] |
|||
| Implementierung = |
|||
| Dialekte = |
|||
| Standardisierungen = |
|||
| Beeinflusst_von = [[Java (Programmiersprache)|Java]], [[SQL]], [[Cobol]], [[Haskell (Programmiersprache)|Haskell]], [[Adabas]]/[[Natural (Programmiersprache)]] |
|||
| Lizenz = [[proprietär]] |
|||
| Website = [https://community.sap.com/topics/abap community.sap.com/topics/abap] |
|||
}} |
}} |
||
'''ABAP''', kurz für „'''A'''dvanced '''B'''usiness '''A'''pplication '''P'''rogramming“, ist eine [[proprietär]]e, multiparadigmatische [[Programmiersprache]], die [[Objektorientierte Programmierung|objektorientierte]], [[Imperative Programmierung|imperative]] und [[Funktionale Programmierung|funktionale]] Elemente hat. Die ABAP-Sprache wird Bytecode interpretiert und Garbage collected.<ref>[https://help.sap.com/doc/abapdocu_latest_index_htm/LATEST/en-US/index.htm ABAP Keyword Documentation], auf help.sap.com</ref> |
|||
'''ABAP''' ist eine [[proprietär]]e [[Programmiersprache]] der Softwarefirma [[SAP AG|SAP]], die für die Programmierung von kommerziellen Anwendungen im SAP-Umfeld entwickelt wurde. Ursprünglich stand die Abkürzung für „'''A'''llgemeiner '''B'''erichts-'''A'''ufbereitungs-'''P'''rozessor“ da mit dieser Sprache nur kundenspezifische Auswertungen programmiert werden konnten, aber keine Datenbankveränderungen vorgenommen werden konnten. Im Zuge der Weiterentwicklungen der Sprache steht die Abkürzung nun für „'''A'''dvanced '''B'''usiness '''A'''pplication '''P'''rogramming“. Der Sprachumfang ist nicht fest definiert und wurde in der Vergangenheit immer wieder erweitert, z. B. um die [[Objektorientierte Programmierung|objektorientierten]] Sprachbefehle von [[#ABAP Objects|ABAP Objects]]. |
|||
ABAP wird von der Softwarefirma [[SAP SE]] für die [[Programmierung]] kommerzieller Anwendungen im SAP-Umfeld entwickelt. |
|||
Seit 1990 basiert das gesamte SAP-System auf ABAP. Seit der Einführung von SAP [[NetWeaver]] bietet die SAP neben ABAP auch eine Programmierumgebung für [[Java (Programmiersprache)|Java]] und dementsprechend einen ABAP-basierten und einen Java-basierten [[Applikationsserver]] an. |
|||
Die Programmiersprache ist ein Bestandteil der ABAP-Plattform. Die Programmiersprache ABAP sollte dabei nicht mit der ABAP-Plattform als Basis-Technologie gleichgesetzt werden. |
|||
== Vorteile == |
|||
ABAP ist eine [[4GL]]-Sprache, die speziell für die Massendatenverarbeitung in kommerziellen Anwendungen entwickelt wurde und bietet u. a. folgende Vorteile gegenüber elementareren Sprachen, in denen solche Funktionen in Bibliotheken liegen: |
|||
ABAP dient hauptsächlich dazu, Business-Applikationen für SAPs on-premises und Cloud ERP-Lösungen sowie, basierend auf dem [[Platform as a Service|Platform-as-a-Service]] (PaaS), SAP BTP ABAP Environment zu entwickeln. |
|||
* Als ''Open SQL'' in die Sprache integrierter Datenbankzugriff |
|||
* In die ABAP-Laufzeitumgebung integrierte Performance-Optimierung von Datenbankzugriffen über die SAP-Pufferung |
|||
* Interne Tabellen für die dynamische Speicherung und Bearbeitung von tabellarischen Massendaten im Arbeitsspeicher |
|||
* In die ABAP-Laufzeitumgebung integriertes Konzept des ''[[OLTP|Online Transaction Processing]]'' (OLTP), bei dem viele Benutzer gleichzeitig auf die zentrale Datenbank zugreifen |
|||
* In die Sprache integrierte Schnittstelle zu anderen Programmierumgebungen über ''[[RFC (Software)|Remote Function Call]]'' |
|||
* In die Sprache integrierte Schnittstelle zu [[Extensible Markup Language|XML]] |
|||
In dem seit 2001 veröffentlichten [[TIOBE-Index]] liegt ABAP aktuell auf Platz 42. |
|||
Die Integration solcher Funktionen in die Sprache ist im Wesentlichen vorteilhaft für die statische Überprüfbarkeit und die Performance von Programmen. Im Gegenzug enthält ABAP dadurch auch wesentlich mehr Sprachelemente als eine elementare Programmiersprache. |
|||
Eingeführt wurde die ABAP-Programmiersprache in den 1980er Jahren. Der Sprachumfang ist nicht standardisiert und wird stetig weiterentwickelt, s. dazu auch die [[#Evolution der Sprache|Evolution der Sprache]]. Als aktuelle Weiterentwicklung seien hier das ABAP RESTful Application Programming Model (RAP) sowie ''ABAP Cloud'' zu nennen. |
|||
ABAP unterstützt ein auf Unterprogrammen und Funktionsbausteinen basierendes prozedurales und ab Release 6.10 ein auf Klassen und Interfaces basierendes objektorientiertes Programmiermodell. Beide Modelle sind interoperabel. |
|||
== |
== Evolution der Sprache == |
||
Die Evolution der ABAP-Sprache ist ausführlich in einem SAP Community Blog-Post beschrieben.<ref>Karl Kessler: [https://blogs.sap.com/2022/09/01/evolution-of-abap/ Evolution of ABAP], auf blogs.sap.com</ref> |
|||
Die Programmierung in ABAP wird durch eine Entwicklungsumgebung unterstützt, die darauf ausgerichtet ist, große Projekte mit mehreren (hunderten) Entwicklern zu ermöglichen. Hierbei muss zu jeder Zeit ein lauffähiges System gewährleistet bleiben. Hierzu werden die geänderten Objekte auf sog. Transportaufträgen erfasst, welche bei Freigabe auf das Filesystem exportiert werden, und in Folgesysteme importiert werden können. Durch diesen Mechanismus kann die Entwicklung der Programme von ihrem produktiven Einsatz getrennt erfolgen. |
|||
Größere Stationen waren: |
|||
Die Entwicklungsumgebung zur Programmiersprache ABAP ist die '''ABAP Workbench'''. In der ABAP Workbench (Einstieg über den so genannten Object Navigator, Transaktion SE80) können jedoch auch andere Objekte wie z. B. BSP ([[Business Server Pages]], mit HTML-Anteilen) bearbeitet werden. |
|||
* In den 1970er Jahren war ABAP eine [[Assembler (Informatik)|Assembler]]-Makrosammlung, die für die Selektion und Listaufbereitung im RFM-System, später auch R/1 genannt. |
|||
Das Besondere ist die sogenannte „Vorwärtsnavigation“. So führt ein Doppelklick auf einen Tabellennamen direkt zur Definition der Datenbanktabelle im ABAP Dictionary oder auf einen Methodennamen direkt in diese Methode. |
|||
* In den 1980er Jahren wurden die ABAP/4-Syntax, der ABAP/4-Generierer und der ABAP-Prozessor für das [[R/2|SAP R/2]]-System eingeführt. Damit konnten Reports ereignisgesteuert definiert und sofort ausgeführt werden. Weiterhin wurde die Sprache erweitert und damit auch die Entwicklung von Dialogtransaktionen (Dynpros) ermöglicht. Mit dem ABAP/4 Editor, Data Dictionary, Screen Painter und ABAP/4 Debugger entstand eine erste Entwicklungsumgebung. |
|||
* In den 1990er Jahren wurden strukturierte Datentypen für das [[SAP R/3]]-System eingeführt. ABAP/4 wird mit der Einführung von ABAP Objects zu einer [[Objektorientierte Programmiersprache|objektorientierten Programmiersprache]] erweitert. Der [[OpenSQL|Open SQL]] Sprachumfang wird kontinuierlich erweitert. Die Entwicklungsumgebung wird mit hierarchischen Objektlisten, Navigation, Verwendungsnachweis und graphischem Screen Painter erweitert. |
|||
* Mit [[SAP NetWeaver]] 7.40 wurden u. a. ABAP Core Data Services, ABAP Channels, AMDP und Zugriff auf SAP HANA Tabellenausdrücke eingeführt. |
|||
* Mit [[SAP S/4HANA]] wurde von [[OpenSQL|Open SQL]] auf ABAP SQL umgestellt |
|||
* Mit dem SAP BTP ABAP Environment (auch Steampunk genannt) wurden klare Leitplanken in die ABAP-Sprache eingezogen, um Cloud-Readiness zu gewährleisten (s. dazu auch Kapitel [[#Sprachversionen und Sprachumfang|Sprachversionen und Sprachumfang]]). |
|||
== Eigenschaften == |
|||
Die ABAP-Workbench ist ein mächtiges Werkzeug, das Zug um Zug an die Anforderungen moderner Software-Entwicklung angepasst wird. Seit dem letzten Release wird beispielsweise auch Syntax-Highlighting unterstützt. |
|||
ABAP ist eine multiparadigmatische [[Programmiersprache]], die [[Objektorientierte Programmierung|objektorientierte]], [[Imperative Programmierung|imperative]] und [[Funktionale Programmierung|funktionale]] Elemente hat. Die ABAP-Sprache wird [[Bytecode]] interpretiert und [[Garbage Collection|Garbage]] collected. |
|||
== Codebeispiel == |
|||
Das nachfolgende Programm gibt den Inhalt der Tabelle TSTC (enthält SAP-Transaktionscodes) zeilenweise aus. |
|||
Sie ist insbesondere für die Entwicklung, den Betrieb und die Wartung betriebswirtschaftlicher Anwendungen konzipiert. |
|||
REPORT ZTEST. |
|||
DATA WA_TSTC TYPE TSTC. |
|||
SELECT * FROM TSTC INTO WA_TSTC. |
|||
WRITE:/ WA_TSTC. |
|||
ENDSELECT. |
|||
Die [[Objektorientierung]] in ABAP basiert auf [[Klasse (Informatik)|Klassen]] und [[Schnittstelle|Interfaces]]. In ABAP gibt es keine [[Mehrfachvererbung]]. Wie in C++ werden Definition und Implementierung der Klassen getrennt. Zusätzlich gibt es ein in die Sprache integriertes Ereigniskonzept. |
|||
* <code>REPORT ZTEST</code>. Beschreibt den Typ (<code>REPORT</code>) und den Namen (<code>ZTEST</code>) des Programms. Der Name richtet sich nach den Namenraumskonventionen, die besagen, dass kundeneigene (also nicht von SAP stammende) Programme in den Namensräumen Z* oder Y* liegen müssen. |
|||
* <code>DATA WA_TSTC TYPE TSTC</code>. Diese Anweisung erstellt (definiert) einen Arbeitsbereich (<tt>WA</tt> = ''Work Area''), welcher die Struktur (Zeilenaufbau) der Datenbanktabelle <tt>TSTC</tt> übernimmt. |
|||
* <code>SELECT * FROM TSTC INTO WA_TSTC</code>. Hier wird eine Leseschleife geöffnet. Der Stern indiziert, dass alle Spalten der Datenbanktabelle <tt>TSTC</tt> (= 1 Datensatz) in den Arbeitsbereich <tt>WA_TSTC</tt> im Arbeitsspeicher geschrieben werden sollen. |
|||
* <code>WRITE:/ WA_TSTC</code>. Der Datensatz im Arbeitsbereich wird ausgegeben. Diese Syntax ist nur sinnvoll, wenn die Struktur aus einer Spalte besteht. Ansonsten sollte man sich mit <tt>TSTC</tt>-Bindestrich-Spalte explizit auf eine Spalte beziehen. Sollen also einzelne Datenfelder ausgegeben werden, so lautet die Syntax <code>WRITE: TSTC-Spalte1, TSTC-Spalte2, TSTC-SpalteN.</code> Der / deutet einen Zeilenumbruch an. |
|||
*<code>ENDSELECT</code>. <code>Endselect</code> beendet eine <code>SELECT</code>-Schleife. |
|||
Als Eigenschaften sind zu nennen: |
|||
== ABAP Objects == |
|||
Unter '''ABAP Objects''' – auch '''ABAP OO''' genannt – versteht man die objektorientierten Erweiterungen der Programmiersprache ABAP. Sie implementiert sämtliche Elemente der [[Objektorientierte Programmierung|objektorientierten Programmierung]] (OOP) mit Ausnahme von [[Mehrfachvererbung]] und dem [[Polymorphie (Programmierung)|Überladen von Methoden]]. Dafür werden [[Schnittstelle (objektorientierte Programmierung)|Interfaces]] unterstützt. |
|||
* ABAP unterstützt eine auf Unterprogrammen und Funktionsbausteinen basierende [[prozedurale Programmierung]]. Die [[Objektorientierte Programmierung|objektorientierten]] und die prozeduralen Programmiermodelle sind interoperabel. |
|||
ABAP Objects ist ab SAP Release 4.6 verfügbar und wird seitdem beständig weiterentwickelt und z. B. durch Object-Services ergänzt. Die objektorientierten Sprachelemente sind Voraussetzung für die Entwicklung von modernen Benutzeroberflächen mit [[Interaktionselement|Controls]] sowie für die Realisierung von [[Webanwendung]]en und XML-Services in ABAP. |
|||
* In neueren Sprachvarianten werden auch Elemente der [[Funktionale Programmierung|funktionalen Programmierung]], wie zum Beispiel ''[[List Comprehension]]'', unterstützt. |
|||
* Interne Tabellen als Bestandteil der Sprache, d. h. tabellenartige Variablen mit Spalten und Schlüsseldefinitionen, auf denen im Hauptspeicher mit einer eigenen Syntax oder mit [[SQL]] operiert werden kann. |
|||
* In die Sprache eingebetteter Datenbankzugriff durch ABAP SQL (früher [[OpenSQL|Open SQL]]). |
|||
* [[Exception Handling]] |
|||
* Berechtigungswesen |
|||
* [[ABAP Unit]] Testframework |
|||
== Sprachversionen und Sprachumfang == |
|||
ABAP hat keine eigene Versionierung, sondern folgt der jeweiligen ABAP Platform Version. Zusätzlich kann man zwischen ''ABAP for Cloud Development'', ''ABAP for Key User'' und ''Standard'' ABAP Sprachumfang unterscheiden. In den aktuellen Cloud-Produkten BTP ABAP Environment sowie in [[SAP S/4HANA]] Cloud public edition Cloud-Produkten stehen nur freigegebene SAP APIs zur Verfügung, die Cloudfähigkeit und Upgrade-Stabilität gewährleisten. |
|||
ABAP ist [[abwärtskompatibel]], wodurch häufig eine hohe Komplexität und ein großer Sprachumfang im Legacy Coding existiert. Es gibt obsolete Sprachelemente, von deren Verwendung abgeraten wird. |
|||
In SAP S/4HANA sowie SAP S/4HANA private Cloud steht der volle ABAP-Sprachumfang (''Standard ABAP'') zur Verfügung. Um die Transformation der diversen [[On-Premises|on-premise]] Installationen sowie aus der SAP S/4HANA private Cloud zu unterstützen, ist es für ABAP-Entwickler über die ABAP-Development-Tools möglich, den Sprachumfang auf den ''ABAP for Cloud'' Sprachumfang einzuschränken und somit nur für den Cloud-Kontext freigegebene Sprachelemente und APIs zu verwenden. |
|||
'''Beispiel''' |
|||
Sowohl SAP S/4HANA Cloud 2302, als auch SAP BTP ABAP Environment 2302 beinhalten den ''ABAP for Cloud'' Sprachumfang 2302. |
|||
== Syntax == |
|||
Syntax und Semantik von ABAP sind in der ABAP Sprachdokumentation der [[SAP]] SE dokumentiert. Die Syntax der Sprache ist der natürlichen Sprache angelehnt. Einzelne Anweisungen werden mit einem Punkt abgeschlossen. ABAP unterscheidet nicht zwischen Groß- und Kleinschreibung. |
|||
Die folgenden ABAP-Programme zeigen sowohl die [[Imperative Programmierung|imperative]], als auch die [[Objektorientierte Programmierung|objektorientiert]] Syntax eines „[[Hallo-Welt-Programm|Hello World!]]“ Beispiels: |
|||
'''Imperative Syntax''' |
|||
<syntaxhighlight lang="abap"> |
|||
report demo_helloworld. |
|||
write 'Hello World!'. |
|||
</syntaxhighlight> |
|||
'''Objektorientierte Syntax''' |
|||
<syntaxhighlight lang="abap"> |
|||
CLASS hello_world DEFINITION. |
|||
PUBLIC SECTION. |
|||
METHODS hello. |
|||
ENDCLASS. |
|||
CLASS hello_world IMPLEMENTATION. |
|||
METHOD hello. |
|||
cl_demo_output=>display( 'Hello World!' ). |
|||
ENDMETHOD. |
|||
ENDCLASS. |
|||
</syntaxhighlight> |
|||
== Clean ABAP == |
|||
Die Clean ABAP Initiative wurde von [[SAP]] ins Leben gerufen.<ref>{{Internetquelle |autor=SAP PRESS |url=https://blog.sap-press.com/what-is-clean-abap |titel=What Is Clean ABAP? |sprache=en |abruf=2025-04-17}}</ref> Sie basiert auf den Prinzipien des Buches „Clean Code“ von [[Robert Cecil Martin|Robert C. Martin]] und wurde speziell für die ABAP-Programmiersprache angepasst. Ziel ist es, die Lesbarkeit, Wartbarkeit und Testbarkeit von ABAP-Code zu verbessern.<ref>{{Internetquelle |autor=OlgaDolinskaja |url=https://community.sap.com/t5/technology-blogs-by-sap/abap-tools-for-clean-abap/ba-p/13577378 |titel=ABAP Tools for Clean ABAP |datum=2023-10-09 |sprache=en |abruf=2025-04-17}}</ref> Einige wichtige Richtlinien von Clean ABAP sind im Folgenden aufgeführt:<ref>{{Internetquelle |url=https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#how-to |titel=styleguides/clean-abap/CleanABAP.md at main · SAP/styleguides |sprache=en |abruf=2025-04-17}}</ref> |
|||
* '''Verwendung beschreibender Namen''': Namen von Variablen, Methoden und Klassen sollten klar und aussagekräftig sein |
|||
* '''Vermeidung von magischen Zahlen''': Stattdessen sollten Konstanten verwendet werden, um den Code verständlicher zu machen |
|||
* '''Bevorzugung von [[Objektorientierung]]''': Objektorientierte Programmierung wird gegenüber [[Prozedurale Programmierung|prozeduraler Programmierung]] bevorzugt |
|||
* '''Reduzierung der Verschachtelungstiefe''': Komplexe Bedingungen sollten vermieden oder vereinfacht werden |
|||
* '''Einheitliche Formatierung''': Konsistente Codeformatierung hilft, den Code lesbarer zu machen |
|||
* '''Verwendung von Kommentaren''': Kommentare sollten sparsam und nur dort eingesetzt werden, wo sie wirklich notwendig sind |
|||
In Clean ABAP wird empfohlen, auf Namenskonvention wie die [[ungarische Notation]] und Präfixe zu verzichten, um die Lesbarkeit und Verständlichkeit des Codes zu verbessern.<ref>{{Internetquelle |url=https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#avoid-encodings-esp-hungarian-notation-and-prefixes |titel=styleguides/clean-abap/CleanABAP.md at main · SAP/styleguides |sprache=en |abruf=2025-04-17}}</ref> |
|||
== Entwicklungsmodell == |
|||
Das vorherrschende Entwicklungsmodell in aktueller ABAP-Entwicklung ist das ABAP RESTful Application Programming Model (RAP). |
|||
Die Evolution des ABAP-Programmiermodells ist ausführlich in einem SAP-Community-Blog-Post beschrieben.<ref>Carine Tchoutouo: [https://blogs.sap.com/2019/02/08/evolution-of-the-abap-programming-model/ Evolution of the ABAP Programming Model], auf blogs.sap.com</ref> |
|||
Ältere ABAP-Entwicklungsmodelle sind: |
|||
* [[Dynpro]]s (Dialog Transaktionen) |
|||
* [[Web Dynpro]]s |
|||
* BSP ([[Business Server Pages]]) |
|||
== Programmierumgebung == |
|||
Das Besondere an der Programmierung in ABAP ist, dass die Entwickler keine Textdateien auf ihrem Rechner editieren und dann auf einen Versionskontrollserver hochladen, sondern alle direkt auf dem ABAP-Server programmieren. |
|||
Es stehen zwei Entwicklungsumgebungen für die ABAP-Entwicklung zur Verfügung: die ABAP Development Tools, welche auf der [[Open Source|Open-Source]]-Software [[Eclipse (IDE)|Eclipse]] basieren, und die ABAP Workbench, welche in das SAP-GUI integriert ist. |
|||
=== ABAP Development Tools === |
|||
Die ABAP Development Tools (ADT) sind die Standard-IDE für ABAP-Entwicklung. ABAP Development Tools / ADT sind in der Online-Dokumentation der SAP SE dokumentiert. |
|||
Seit 2012 wird mit ABAP Development Tools (ADT) eine auf die Open Source [[Eclipse (IDE)|Eclipse]]-basierende Entwicklungsumgebung für ABAP bereitgestellt. ADT wird dabei in allen Produktvarianten, in denen ABAP entwickelt werden kann, unterstützt. Es ist auch möglich, Visual Studio Code (VS Code) für die ABAP Entwicklung zu verwenden. Es stehen dazu mehrere Plugins zur Verfügung. Der Funktionsumfang ist aber im Vergleich zu den ABAP Development Tools (ADT) noch eingeschränkt. |
|||
Einen ausführlichen Überblick und Einstieg in die Nutzung der ABAP Development Tools bietet der „ADT Leitfaden“ der Deutschsprachigen SAP Anwendergruppe (DSAG).<ref>{{Internetquelle |autor= |url=https://1dsag.github.io/ADT-Leitfaden/ |titel=DSAG ADT Leitfaden – ABAP in modern |werk=1dsag.github.io |datum= |sprache=de |abruf=2023-04-24}}</ref> |
|||
=== ABAP Workbench / SAP GUI === |
|||
Anfang der 1990er Jahre wurde die im SAP [[Grafische Benutzeroberfläche|GUI]] integrierte ABAP Workbench (Transaktion SE80) für die Entwicklung in ABAP eingeführt. |
|||
Die ABAP Workbench (SE80) lieferte folgende wesentliche Verbesserungen: |
|||
* Hierarchische Darstellung aller Objektlisten (ABAP Pakete, ABAP Programme, ABAP Klassen etc.) |
|||
* Durchgängige Navigationsunterstützung zur Definitionsstelle, mit der Möglichkeit, Objekte direkt anlegen zu können |
|||
* Verwendungsnachweis zu allen Verwendungsstellen eines Objekts |
|||
Eine Besonderheit in der ABAP-Workbench ist die sogenannte „Vorwärtsnavigation“. |
|||
'''Beispiele''' |
|||
* Ein Doppelklick auf einen Tabellennamen oder Datentyp führt zur Definition der Datenbanktabelle im ABAP-Dictionary. |
|||
* Ein Doppelklick auf einen Funktions-, Methoden- oder Klassennamen führt dorthin. |
|||
* Ein Doppelklick auf einen Variablennamen führt zur Definition der Variable. |
|||
Falls das verwendete Objekt noch nicht existiert, kann es so auch angelegt werden. |
|||
== Herausforderungen und Umgang mit Legacy ABAP Coding == |
|||
Die Vielzahl der möglichen ABAP-Anweisungen und ihrer Varianten sowie nicht reservierte Schlüsselwörter führen allgemein zu einem schwerer verständlichen Quellcode als in anderen gängigen Programmiersprachen. Die vorhandene Vielfalt der ABAP-Anweisungen resultiert aus der [[Abwärtskompatibilität]]. |
|||
Der Vorteil ist, dass die bisherigen Entwicklungen und Kundenanpassungen funktionsfähig bleiben und deren Verhalten sich nicht ändert. Für ABAP-Entwickler bedeutet dies, dass sowohl die alten als auch die neuen Sprachelemente erlernt werden müssen. |
|||
Mit Einführung von ABAP Objects in den 1990er Jahren wurde der in Klassen verfügbare Sprachumfang eingeschränkt, was zu einer Vereinfachung und Verbesserung des vorhandenen Legacy Coding geführt hat. |
|||
Mit der Einführung von ''ABAP Cloud'' im Jahre 2022 wurde der Sprachumfang erneut angepasst, so dass auch hier eine Vereinfachung und Renovierung des vorhandenen Legacy Coding erfolgen kann. |
|||
Es gibt verschiedene Werkzeuge, die Entwickler dabei unterstützen, Legacy Coding an neuere Programmierrichtlinien auszurichten, aktuelle Sprachelemente zu verwenden sowie Legacy Coding auf den Cloud-Umstieg vorzubereiten: |
|||
* Clean Code in ABAP |
|||
* Quick Fixes |
|||
* ATC (ABAP Test Cockpit) Checks |
|||
* Custom Code Migration |
|||
* ABAP Cloud Programmierrichtlinien |
|||
Alle gelisteten Werkzeuge sind Teil der ABAP Development Tools Entwicklungsumgebung. |
|||
== Literatur == |
|||
* Horst Keller: ''ABAP, Die offizielle Referenz.'' Rheinwerk 2016, ISBN 978-3-8362-4109-0. |
|||
* Horst Keller: ''ABAP-Schnellreferenz.'' Galileo Press, 2005, ISBN 3-89842-680-7. |
|||
* Sascha Krüger, Jörg Seelmann-Eggebert: ''ABAP Best Practices.'' Galileo Press, 2005, ISBN 3-89842-354-9. |
|||
* Horst Keller, Sascha Krüger: ''ABAP Objects – ABAP-Programmierung mit SAP NetWeaver.'' Galileo Press, 2006, ISBN 3-89842-358-1. |
|||
* Horst Keller, Wolf Hagen Thümmel: ''ABAP-Programmierichtlinien.'' Galileo Press, 2009, ISBN 978-3-8362-1286-1. |
|||
* Andreas Wiegenstein, Markus Schumacher, Sebastian Schinzel, Frederik Weidemann: ''Sichere ABAP-Programmierung.'' Galileo Press, 2009, ISBN 978-3-8362-1357-8. |
|||
* Hermann Gahm: ''ABAP Performance Tuning'' Galileo Press, 2009, ISBN 978-3-8362-1211-3. |
|||
* Bernd Matzke: ''ABAP / 4.'' Addison – Wesley, ISBN 3-8273-1372-4. |
|||
* {{Literatur |
|||
|Autor=Stephan Kaleske |
|||
|Titel=Query-Reporting mit SAP ERP |
|||
|Verlag=Galileo-Press |
|||
|Ort=Bonn |
|||
|Datum=2009 |
|||
|ISBN=978-3-8362-1433-9 |
|||
|Kommentar=SAP PRESS}} |
|||
== Weblinks == |
== Weblinks == |
||
* [https://help.sap.com/docs/SAP_NETWEAVER_740/7bfe8cdcfbb040dcb6702dada8c3e2f0/2ff82a005ddd4f369b74bfda71f297c0.html?locale=de-DE Einführende Übersicht über die Programmiersprache ABAP] |
|||
{{Wikibooks|ABAP}} |
|||
* {{Internetquelle |
|||
*[http://www.sdn.sap.com/irj/sdn/developerareas/abap ABAP Info beim SAP Developer Network] |
|||
|url=https://help.sap.com/doc/abapdocu_latest_index_htm/LATEST/en-US/index.htm |
|||
*[http://www.4ap.de 4ap.de = Viele einführende Infos zu ABAP und SAP] |
|||
|titel=ABAP Keyword Documentation |
|||
|datum= |
|||
|sprache=en |
|||
|abruf=2025-04-16 |
|||
|abruf-verborgen=1}} |
|||
* [https://help.sap.com/docs/SAP_S4HANA_CLOUD/6aa39f1ac05441e5a23f484f31e477e7/40bae48ec22f43489dc0573901a32887.html?mt=de-DE ABAP Development Tools / ADT Dokumentation] |
|||
* [https://help.sap.com/docs/SAP_NETWEAVER_701/6da3d9466c4b1014a5a2e370bd8c5dc8/4341341147041806e10000000a1553f6.html?locale=de-DE ABAP Programmierumgebung im Release NetWeaver 7.0 Enhancement Pack 1] |
|||
* [https://pages.community.sap.com/topics ABAP] in der SAP Community |
|||
* [https://tricktresor.de/ Tricktresor.de] Redaktionell aufbereitete Tipps & Tricks zur ABAP-Programmierung |
|||
* [https://www.4ap.de/ 4ap.de] alles für ABAP-Programmierer |
|||
* [https://www.abapforum.com/forum ABAPforum.com] deutschsprachiges Expertenforum rund um ABAP |
|||
* {{dmoz|World/Deutsch/Computer/Software/ERP Enterprise Resource Planning/SAP/ABAP/|ABAP}} |
|||
* [https://erp-up.de/ erp-up.de] Wertvolle Tipps und Tricks rund um SAP ERP, SAP S/4HANA und ABAP-Programmierung |
|||
* [https://pages.community.sap.com/topics/abap ABAP Community Seite] |
|||
* [https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/evolution-of-abap/ba-p/13522761 Evolution of ABAP], SAP Community, 1. September 2022 |
|||
* [https://codezentrale.de/category/sap/sap-abap/ Die Codezentrale] bietet umfangreiche Codebeispiele ohne weitere Erklärungen |
|||
== Einzelnachweise == |
|||
<references /> |
|||
{{Normdaten|TYP=s|GND=4610511-6}} |
|||
[[Kategorie:Programmiersprache]] |
[[Kategorie:Programmiersprache]] |
||
[[Kategorie:SAP]] |
[[Kategorie:SAP]] |
||
[[Kategorie:Abkürzung]] |
[[Kategorie:Abkürzung]] |
||
[[cs:ABAP]] |
|||
[[en:ABAP]] |
|||
[[es:ABAP]] |
|||
[[fr:ABAP]] |
|||
[[it:ABAP]] |
|||
[[nl:ABAP]] |
|||
[[pl:ABAP (język programowania)]] |
|||
[[pt:ABAP]] |
|||
[[ru:ABAP/4]] |
|||
[[tr:ABAP]] |
Aktuelle Version vom 11. Mai 2025, 15:17 Uhr
ABAP | |
---|---|
Basisdaten | |
Paradigmen: | Objektorientiert, prozedural |
Erscheinungsjahr: | 1983 |
Entwickler: | SAP SE |
Aktuelle Version: | Die Programmiersprache hat keine eigene Versionierung, sondern ist identisch mit der Version des zugrundeliegenden Produktes, s. u. Sprachversionen und Sprachumfang (12. Oktober 2022) |
Beeinflusst von: | Java, SQL, Cobol, Haskell, Adabas/Natural (Programmiersprache) |
Betriebssystem: | Windows, Unix/Linux, AIX, HP-UX, Solaris, OS/400 |
Lizenz: | proprietär |
community.sap.com/topics/abap |
ABAP, kurz für „Advanced Business Application Programming“, ist eine proprietäre, multiparadigmatische Programmiersprache, die objektorientierte, imperative und funktionale Elemente hat. Die ABAP-Sprache wird Bytecode interpretiert und Garbage collected.[1]
ABAP wird von der Softwarefirma SAP SE für die Programmierung kommerzieller Anwendungen im SAP-Umfeld entwickelt.
Die Programmiersprache ist ein Bestandteil der ABAP-Plattform. Die Programmiersprache ABAP sollte dabei nicht mit der ABAP-Plattform als Basis-Technologie gleichgesetzt werden.
ABAP dient hauptsächlich dazu, Business-Applikationen für SAPs on-premises und Cloud ERP-Lösungen sowie, basierend auf dem Platform-as-a-Service (PaaS), SAP BTP ABAP Environment zu entwickeln.
In dem seit 2001 veröffentlichten TIOBE-Index liegt ABAP aktuell auf Platz 42.
Eingeführt wurde die ABAP-Programmiersprache in den 1980er Jahren. Der Sprachumfang ist nicht standardisiert und wird stetig weiterentwickelt, s. dazu auch die Evolution der Sprache. Als aktuelle Weiterentwicklung seien hier das ABAP RESTful Application Programming Model (RAP) sowie ABAP Cloud zu nennen.
Evolution der Sprache
[Bearbeiten | Quelltext bearbeiten]Die Evolution der ABAP-Sprache ist ausführlich in einem SAP Community Blog-Post beschrieben.[2]
Größere Stationen waren:
- In den 1970er Jahren war ABAP eine Assembler-Makrosammlung, die für die Selektion und Listaufbereitung im RFM-System, später auch R/1 genannt.
- In den 1980er Jahren wurden die ABAP/4-Syntax, der ABAP/4-Generierer und der ABAP-Prozessor für das SAP R/2-System eingeführt. Damit konnten Reports ereignisgesteuert definiert und sofort ausgeführt werden. Weiterhin wurde die Sprache erweitert und damit auch die Entwicklung von Dialogtransaktionen (Dynpros) ermöglicht. Mit dem ABAP/4 Editor, Data Dictionary, Screen Painter und ABAP/4 Debugger entstand eine erste Entwicklungsumgebung.
- In den 1990er Jahren wurden strukturierte Datentypen für das SAP R/3-System eingeführt. ABAP/4 wird mit der Einführung von ABAP Objects zu einer objektorientierten Programmiersprache erweitert. Der Open SQL Sprachumfang wird kontinuierlich erweitert. Die Entwicklungsumgebung wird mit hierarchischen Objektlisten, Navigation, Verwendungsnachweis und graphischem Screen Painter erweitert.
- Mit SAP NetWeaver 7.40 wurden u. a. ABAP Core Data Services, ABAP Channels, AMDP und Zugriff auf SAP HANA Tabellenausdrücke eingeführt.
- Mit SAP S/4HANA wurde von Open SQL auf ABAP SQL umgestellt
- Mit dem SAP BTP ABAP Environment (auch Steampunk genannt) wurden klare Leitplanken in die ABAP-Sprache eingezogen, um Cloud-Readiness zu gewährleisten (s. dazu auch Kapitel Sprachversionen und Sprachumfang).
Eigenschaften
[Bearbeiten | Quelltext bearbeiten]ABAP ist eine multiparadigmatische Programmiersprache, die objektorientierte, imperative und funktionale Elemente hat. Die ABAP-Sprache wird Bytecode interpretiert und Garbage collected.
Sie ist insbesondere für die Entwicklung, den Betrieb und die Wartung betriebswirtschaftlicher Anwendungen konzipiert.
Die Objektorientierung in ABAP basiert auf Klassen und Interfaces. In ABAP gibt es keine Mehrfachvererbung. Wie in C++ werden Definition und Implementierung der Klassen getrennt. Zusätzlich gibt es ein in die Sprache integriertes Ereigniskonzept.
Als Eigenschaften sind zu nennen:
- ABAP unterstützt eine auf Unterprogrammen und Funktionsbausteinen basierende prozedurale Programmierung. Die objektorientierten und die prozeduralen Programmiermodelle sind interoperabel.
- In neueren Sprachvarianten werden auch Elemente der funktionalen Programmierung, wie zum Beispiel List Comprehension, unterstützt.
- Interne Tabellen als Bestandteil der Sprache, d. h. tabellenartige Variablen mit Spalten und Schlüsseldefinitionen, auf denen im Hauptspeicher mit einer eigenen Syntax oder mit SQL operiert werden kann.
- In die Sprache eingebetteter Datenbankzugriff durch ABAP SQL (früher Open SQL).
- Exception Handling
- Berechtigungswesen
- ABAP Unit Testframework
Sprachversionen und Sprachumfang
[Bearbeiten | Quelltext bearbeiten]ABAP hat keine eigene Versionierung, sondern folgt der jeweiligen ABAP Platform Version. Zusätzlich kann man zwischen ABAP for Cloud Development, ABAP for Key User und Standard ABAP Sprachumfang unterscheiden. In den aktuellen Cloud-Produkten BTP ABAP Environment sowie in SAP S/4HANA Cloud public edition Cloud-Produkten stehen nur freigegebene SAP APIs zur Verfügung, die Cloudfähigkeit und Upgrade-Stabilität gewährleisten.
ABAP ist abwärtskompatibel, wodurch häufig eine hohe Komplexität und ein großer Sprachumfang im Legacy Coding existiert. Es gibt obsolete Sprachelemente, von deren Verwendung abgeraten wird.
In SAP S/4HANA sowie SAP S/4HANA private Cloud steht der volle ABAP-Sprachumfang (Standard ABAP) zur Verfügung. Um die Transformation der diversen on-premise Installationen sowie aus der SAP S/4HANA private Cloud zu unterstützen, ist es für ABAP-Entwickler über die ABAP-Development-Tools möglich, den Sprachumfang auf den ABAP for Cloud Sprachumfang einzuschränken und somit nur für den Cloud-Kontext freigegebene Sprachelemente und APIs zu verwenden.
Beispiel
Sowohl SAP S/4HANA Cloud 2302, als auch SAP BTP ABAP Environment 2302 beinhalten den ABAP for Cloud Sprachumfang 2302.
Syntax
[Bearbeiten | Quelltext bearbeiten]Syntax und Semantik von ABAP sind in der ABAP Sprachdokumentation der SAP SE dokumentiert. Die Syntax der Sprache ist der natürlichen Sprache angelehnt. Einzelne Anweisungen werden mit einem Punkt abgeschlossen. ABAP unterscheidet nicht zwischen Groß- und Kleinschreibung.
Die folgenden ABAP-Programme zeigen sowohl die imperative, als auch die objektorientiert Syntax eines „Hello World!“ Beispiels:
Imperative Syntax
report demo_helloworld.
write 'Hello World!'.
Objektorientierte Syntax
CLASS hello_world DEFINITION.
PUBLIC SECTION.
METHODS hello.
ENDCLASS.
CLASS hello_world IMPLEMENTATION.
METHOD hello.
cl_demo_output=>display( 'Hello World!' ).
ENDMETHOD.
ENDCLASS.
Clean ABAP
[Bearbeiten | Quelltext bearbeiten]Die Clean ABAP Initiative wurde von SAP ins Leben gerufen.[3] Sie basiert auf den Prinzipien des Buches „Clean Code“ von Robert C. Martin und wurde speziell für die ABAP-Programmiersprache angepasst. Ziel ist es, die Lesbarkeit, Wartbarkeit und Testbarkeit von ABAP-Code zu verbessern.[4] Einige wichtige Richtlinien von Clean ABAP sind im Folgenden aufgeführt:[5]
- Verwendung beschreibender Namen: Namen von Variablen, Methoden und Klassen sollten klar und aussagekräftig sein
- Vermeidung von magischen Zahlen: Stattdessen sollten Konstanten verwendet werden, um den Code verständlicher zu machen
- Bevorzugung von Objektorientierung: Objektorientierte Programmierung wird gegenüber prozeduraler Programmierung bevorzugt
- Reduzierung der Verschachtelungstiefe: Komplexe Bedingungen sollten vermieden oder vereinfacht werden
- Einheitliche Formatierung: Konsistente Codeformatierung hilft, den Code lesbarer zu machen
- Verwendung von Kommentaren: Kommentare sollten sparsam und nur dort eingesetzt werden, wo sie wirklich notwendig sind
In Clean ABAP wird empfohlen, auf Namenskonvention wie die ungarische Notation und Präfixe zu verzichten, um die Lesbarkeit und Verständlichkeit des Codes zu verbessern.[6]
Entwicklungsmodell
[Bearbeiten | Quelltext bearbeiten]Das vorherrschende Entwicklungsmodell in aktueller ABAP-Entwicklung ist das ABAP RESTful Application Programming Model (RAP).
Die Evolution des ABAP-Programmiermodells ist ausführlich in einem SAP-Community-Blog-Post beschrieben.[7]
Ältere ABAP-Entwicklungsmodelle sind:
- Dynpros (Dialog Transaktionen)
- Web Dynpros
- BSP (Business Server Pages)
Programmierumgebung
[Bearbeiten | Quelltext bearbeiten]Das Besondere an der Programmierung in ABAP ist, dass die Entwickler keine Textdateien auf ihrem Rechner editieren und dann auf einen Versionskontrollserver hochladen, sondern alle direkt auf dem ABAP-Server programmieren.
Es stehen zwei Entwicklungsumgebungen für die ABAP-Entwicklung zur Verfügung: die ABAP Development Tools, welche auf der Open-Source-Software Eclipse basieren, und die ABAP Workbench, welche in das SAP-GUI integriert ist.
ABAP Development Tools
[Bearbeiten | Quelltext bearbeiten]Die ABAP Development Tools (ADT) sind die Standard-IDE für ABAP-Entwicklung. ABAP Development Tools / ADT sind in der Online-Dokumentation der SAP SE dokumentiert.
Seit 2012 wird mit ABAP Development Tools (ADT) eine auf die Open Source Eclipse-basierende Entwicklungsumgebung für ABAP bereitgestellt. ADT wird dabei in allen Produktvarianten, in denen ABAP entwickelt werden kann, unterstützt. Es ist auch möglich, Visual Studio Code (VS Code) für die ABAP Entwicklung zu verwenden. Es stehen dazu mehrere Plugins zur Verfügung. Der Funktionsumfang ist aber im Vergleich zu den ABAP Development Tools (ADT) noch eingeschränkt.
Einen ausführlichen Überblick und Einstieg in die Nutzung der ABAP Development Tools bietet der „ADT Leitfaden“ der Deutschsprachigen SAP Anwendergruppe (DSAG).[8]
ABAP Workbench / SAP GUI
[Bearbeiten | Quelltext bearbeiten]Anfang der 1990er Jahre wurde die im SAP GUI integrierte ABAP Workbench (Transaktion SE80) für die Entwicklung in ABAP eingeführt.
Die ABAP Workbench (SE80) lieferte folgende wesentliche Verbesserungen:
- Hierarchische Darstellung aller Objektlisten (ABAP Pakete, ABAP Programme, ABAP Klassen etc.)
- Durchgängige Navigationsunterstützung zur Definitionsstelle, mit der Möglichkeit, Objekte direkt anlegen zu können
- Verwendungsnachweis zu allen Verwendungsstellen eines Objekts
Eine Besonderheit in der ABAP-Workbench ist die sogenannte „Vorwärtsnavigation“.
Beispiele
- Ein Doppelklick auf einen Tabellennamen oder Datentyp führt zur Definition der Datenbanktabelle im ABAP-Dictionary.
- Ein Doppelklick auf einen Funktions-, Methoden- oder Klassennamen führt dorthin.
- Ein Doppelklick auf einen Variablennamen führt zur Definition der Variable.
Falls das verwendete Objekt noch nicht existiert, kann es so auch angelegt werden.
Herausforderungen und Umgang mit Legacy ABAP Coding
[Bearbeiten | Quelltext bearbeiten]Die Vielzahl der möglichen ABAP-Anweisungen und ihrer Varianten sowie nicht reservierte Schlüsselwörter führen allgemein zu einem schwerer verständlichen Quellcode als in anderen gängigen Programmiersprachen. Die vorhandene Vielfalt der ABAP-Anweisungen resultiert aus der Abwärtskompatibilität.
Der Vorteil ist, dass die bisherigen Entwicklungen und Kundenanpassungen funktionsfähig bleiben und deren Verhalten sich nicht ändert. Für ABAP-Entwickler bedeutet dies, dass sowohl die alten als auch die neuen Sprachelemente erlernt werden müssen.
Mit Einführung von ABAP Objects in den 1990er Jahren wurde der in Klassen verfügbare Sprachumfang eingeschränkt, was zu einer Vereinfachung und Verbesserung des vorhandenen Legacy Coding geführt hat.
Mit der Einführung von ABAP Cloud im Jahre 2022 wurde der Sprachumfang erneut angepasst, so dass auch hier eine Vereinfachung und Renovierung des vorhandenen Legacy Coding erfolgen kann.
Es gibt verschiedene Werkzeuge, die Entwickler dabei unterstützen, Legacy Coding an neuere Programmierrichtlinien auszurichten, aktuelle Sprachelemente zu verwenden sowie Legacy Coding auf den Cloud-Umstieg vorzubereiten:
- Clean Code in ABAP
- Quick Fixes
- ATC (ABAP Test Cockpit) Checks
- Custom Code Migration
- ABAP Cloud Programmierrichtlinien
Alle gelisteten Werkzeuge sind Teil der ABAP Development Tools Entwicklungsumgebung.
Literatur
[Bearbeiten | Quelltext bearbeiten]- Horst Keller: ABAP, Die offizielle Referenz. Rheinwerk 2016, ISBN 978-3-8362-4109-0.
- Horst Keller: ABAP-Schnellreferenz. Galileo Press, 2005, ISBN 3-89842-680-7.
- Sascha Krüger, Jörg Seelmann-Eggebert: ABAP Best Practices. Galileo Press, 2005, ISBN 3-89842-354-9.
- Horst Keller, Sascha Krüger: ABAP Objects – ABAP-Programmierung mit SAP NetWeaver. Galileo Press, 2006, ISBN 3-89842-358-1.
- Horst Keller, Wolf Hagen Thümmel: ABAP-Programmierichtlinien. Galileo Press, 2009, ISBN 978-3-8362-1286-1.
- Andreas Wiegenstein, Markus Schumacher, Sebastian Schinzel, Frederik Weidemann: Sichere ABAP-Programmierung. Galileo Press, 2009, ISBN 978-3-8362-1357-8.
- Hermann Gahm: ABAP Performance Tuning Galileo Press, 2009, ISBN 978-3-8362-1211-3.
- Bernd Matzke: ABAP / 4. Addison – Wesley, ISBN 3-8273-1372-4.
- Stephan Kaleske: Query-Reporting mit SAP ERP. Galileo-Press, Bonn 2009, ISBN 978-3-8362-1433-9 (SAP PRESS).
Weblinks
[Bearbeiten | Quelltext bearbeiten]- Einführende Übersicht über die Programmiersprache ABAP
- ABAP Keyword Documentation. (englisch).
- ABAP Development Tools / ADT Dokumentation
- ABAP Programmierumgebung im Release NetWeaver 7.0 Enhancement Pack 1
- ABAP in der SAP Community
- Tricktresor.de Redaktionell aufbereitete Tipps & Tricks zur ABAP-Programmierung
- 4ap.de alles für ABAP-Programmierer
- ABAPforum.com deutschsprachiges Expertenforum rund um ABAP
- Enterprise Resource Planning/SAP/ABAP/ Linkkatalog zum Thema ABAP bei odp.org (ehemals DMOZ)
- erp-up.de Wertvolle Tipps und Tricks rund um SAP ERP, SAP S/4HANA und ABAP-Programmierung
- ABAP Community Seite
- Evolution of ABAP, SAP Community, 1. September 2022
- Die Codezentrale bietet umfangreiche Codebeispiele ohne weitere Erklärungen
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ ABAP Keyword Documentation, auf help.sap.com
- ↑ Karl Kessler: Evolution of ABAP, auf blogs.sap.com
- ↑ SAP PRESS: What Is Clean ABAP? Abgerufen am 17. April 2025 (englisch).
- ↑ OlgaDolinskaja: ABAP Tools for Clean ABAP. 9. Oktober 2023, abgerufen am 17. April 2025 (englisch).
- ↑ styleguides/clean-abap/CleanABAP.md at main · SAP/styleguides. Abgerufen am 17. April 2025 (englisch).
- ↑ styleguides/clean-abap/CleanABAP.md at main · SAP/styleguides. Abgerufen am 17. April 2025 (englisch).
- ↑ Carine Tchoutouo: Evolution of the ABAP Programming Model, auf blogs.sap.com
- ↑ DSAG ADT Leitfaden – ABAP in modern. In: 1dsag.github.io. Abgerufen am 24. April 2023.