www.wikidata.de-de.nina.az
Dieser Artikel beschreibt die Programmiersprache Fur den Betriebsstellencode der DB siehe Bahnhof Hamburg Barmbek ABAP kurz fur Advanced Business Application Programming ist eine proprietare multiparadigmatische Programmiersprache die objektorientierte imperative und funktionale Elemente hat Die ABAP Sprache wird Bytecode interpretiert und Garbage collected 1 ABAPParadigmen Objektorientiert prozeduralErscheinungsjahr 1983Entwickler SAP SEAktuelle 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 400Lizenz proprietarcommunity sap com topics abapABAP wird von der Softwarefirma SAP SE fur 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 Platform als Basis Technologie gleichgesetzt werden ABAP dient hauptsachlich dazu Business Applikationen fur SAPs on Premise und Cloud ERP Losungen sowie basierend auf dem Platform as a Service PaaS SAP BTP ABAP Environment zu entwickeln In dem seit 2001 veroffentlichten TIOBE Index liegt ABAP aktuell auf Platz 42 Eingefuhrt 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 sei hier das ABAP RESTful Application Programming Model RAP sowie ABAP Cloud zu nennen Inhaltsverzeichnis 1 Evolution der Sprache 2 Eigenschaften 3 Sprachversionen und Sprachumfang 4 Syntax 5 Entwicklungsmodell 6 Programmierumgebung 6 1 ABAP Development Tools 6 2 ABAP Workbench SAP GUI 7 Herausforderungen und Umgang mit Legacy ABAP Coding 8 Literatur 9 Weblinks 10 EinzelnachweiseEvolution der Sprache BearbeitenDie Evolution der ABAP Sprache ist ausfuhrlich in einem SAP Community Blog Post beschrieben 2 Grossere Stationen waren In den 1970er Jahren war ABAP eine Assembler Makrosammlung die fur die Selektion und Listaufbereitung im RFM System spater auch R 1 genannt In den 1980er Jahren wurden die ABAP 4 Syntax der ABAP 4 Generierer und der ABAP Prozessor fur das SAP R 2 System eingefuhrt Damit konnten Reports ereignisgesteuert definiert und sofort ausgefuhrt werden Weiterhin wurde die Sprache erweitert und damit auch die Entwicklung von Dialogtransaktionen Dynpros ermoglicht Mit dem ABAP 4 Editor Data Dictionary Screen Painter und ABAP 4 Debugger entstand eine erste Entwicklungsumgebung In den 1990er Jahren wurden strukturierte Datentypen fur das SAP R 3 System eingefuhrt ABAP 4 wird mit der Einfuhrung 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 Tabellenausdrucke eingefuhrt 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 gewahrleisten s dazu auch Kapitel Sprachversionen und Sprachumfang Eigenschaften BearbeitenABAP ist eine multiparadigmatische Programmiersprache die objektorientierte imperative und funktionale Elemente hat Die ABAP Sprache wird Bytecode interpretiert und Garbage collected Sie ist insbesondere fur 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 Zusatzlich gibt es ein in die Sprache integriertes Ereigniskonzept Als Eigenschaften sind zu nennen ABAP unterstutzt 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 unterstutzt Interne Tabellen als Bestandteil der Sprache d h tabellenartige Variablen mit Spalten und Schlusseldefinitionen auf denen im Hauptspeicher mit einer eigenen Syntax oder mit SQL operiert werden kann In die Sprache eingebetteter Datenbankzugriff durch ABAP SQL fruher Open SQL Exception Handling Berechtigungswesen ABAP Unit TestframeworkSprachversionen und Sprachumfang BearbeitenABAP hat keine eigene Versionierung sondern folgt der jeweiligen ABAP Platform Version Zusatzlich 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 Verfugung die Cloudfahigkeit und Upgrade Stabilitat gewahrleisten ABAP ist abwartskompatibel wodurch haufig eine hohe Komplexitat und ein grosser 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 Verfugung Um die Transformation der diversen on premise Installationen sowie aus der SAP S 4HANA private Cloud zu unterstutzen ist es fur ABAP Entwickler uber die ABAP Development Tools moglich den Sprachumfang auf den ABAP for Cloud Sprachumfang einzuschranken und somit nur fur den Cloud Kontext freigegebene Sprachelemente und APIs zu verwenden BeispielSowohl SAP S 4HANA Cloud 2302 als auch SAP BTP ABAP Environment 2302 beinhalten den ABAP for Cloud Sprachumfang 2302 Syntax BearbeitenSyntax und Semantik von ABAP sind in der ABAP Sprachdokumentation der SAP SE dokumentiert Die Syntax der Sprache ist der naturlichen Sprache angelehnt Einzelne Anweisungen werden mit einem Punkt abgeschlossen ABAP unterscheidet nicht zwischen Gross und Kleinschreibung Die folgenden ABAP Programme zeigen sowohl die imperative als auch die objektorientiert Syntax eines Hello World Beispiels Imperative Syntaxreport demo helloworld write Hello World Objektorientierte SyntaxCLASS hello world DEFINITION PUBLIC SECTION METHODS hello ENDCLASS CLASS hello world IMPLEMENTATION METHOD hello cl demo output gt display Hello World ENDMETHOD ENDCLASS Entwicklungsmodell BearbeitenDas vorherrschende Entwicklungsmodell in aktueller ABAP Entwicklung ist das ABAP RESTful Application Programming Model RAP Die Evolution des ABAP Programmiermodells ist ausfuhrlich in einem SAP Community Blog Post beschrieben 3 Altere ABAP Entwicklungsmodelle sind Dynpros Dialog Transaktionen Web Dynpros BSP Business Server Pages Programmierumgebung BearbeitenDas 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 fur die ABAP Entwicklung zur Verfugung 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 Die ABAP Development Tools ADT ist die Standard IDE fur 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 fur ABAP bereitgestellt ADT wird dabei in allen Produktvarianten in denen ABAP entwickelt werden kann unterstutzt Einen ausfuhrlichen Uberblick und Einstieg in die Nutzung der ABAP Development Tools bietet der ADT Leitfaden der Deutschsprachigen SAP Anwendergruppe DSAG 4 ABAP Workbench SAP GUI Bearbeiten Anfang der 1990er Jahre wurde die im SAP GUI integrierte ABAP Workbench Transaktion SE80 fur die Entwicklung in ABAP eingefuhrt Die ABAP Workbench SE80 lieferte folgende wesentliche Verbesserungen Hierarchische Darstellung aller Objektlisten ABAP Pakete ABAP Programme ABAP Klassen etc Durchgangige Navigationsunterstutzung zur Definitionsstelle mit der Moglichkeit Objekte direkt anlegen zu konnen Verwendungsnachweis zu allen Verwendungsstellen eines ObjektsEine Besonderheit in der ABAP Workbench ist die sogenannte Vorwartsnavigation Beispiele Ein Doppelklick auf einen Tabellennamen oder Datentyp fuhrt zur Definition der Datenbanktabelle im ABAP Dictionary Ein Doppelklick auf einen Funktions Methoden oder Klassennamen fuhrt dorthin Ein Doppelklick auf einen Variablennamen fuhrt zur Definition der Variable Falls das verwendete Objekt noch nicht existiert kann es so auch angelegt werden Herausforderungen und Umgang mit Legacy ABAP Coding BearbeitenDie Vielzahl der moglichen ABAP Anweisungen und ihrer Varianten sowie nicht reservierte Schlusselworter fuhren allgemein zu einem schwerer verstandlichen Quellcode als in anderen gangigen Programmiersprachen Die vorhandene Vielfalt der ABAP Anweisungen resultiert aus der Abwartskompatibilitat Der Vorteil ist dass die bisherigen Entwicklungen und Kundenanpassungen funktionsfahig bleiben und deren Verhalten sich nicht andert Fur ABAP Entwickler bedeutet dies dass sowohl die alten als auch die neuen Sprachelemente erlernt werden mussen Mit Einfuhrung von ABAP Objects in den 1990er Jahren wurde der in Klassen verfugbare Sprachumfang eingeschrankt was zu einer Vereinfachung und Verbesserung des vorhandenen Legacy Coding gefuhrt hat Mit der Einfuhrung 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 unterstutzen 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 ProgrammierrichtlinienAlle gelisteten Werkzeuge sind Teil der ABAP Development Tools Entwicklungsumgebung Literatur BearbeitenHorst 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 Kruger Jorg Seelmann Eggebert ABAP Best Practices Galileo Press 2005 ISBN 3 89842 354 9 Horst Keller Sascha Kruger ABAP Objects ABAP Programmierung mit SAP NetWeaver Galileo Press 2006 ISBN 3 89842 358 1 Horst Keller Wolf Hagen Thummel 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 BearbeitenEinfuhrende Ubersicht uber die Programmiersprache ABAP ABAP Keyword Documentation Abgerufen am 25 September 2022 englisch ABAP Development Tools ADT Dokumentation ABAP Programmierumgebung im Release NetWeaver 7 0 Enhancement Pack 1 ABAP beim SAP Developer Network Tricktresor de Redaktionell aufbereitete Tipps amp Tricks zur ABAP Programmierung 4ap de alles fur ABAP Programmierer ABAPforum com deutschsprachiges Expertenforum rund um ABAP Enterprise Resource Planning SAP ABAP Linkkatalog zum Thema ABAP bei curlie org ehemals DMOZ erp up de Wertvolle Tipps und Tricks rund um SAP ERP SAP S 4HANA und ABAP Programmierung ABAP Community Seite Die Evolution der ABAP SpracheEinzelnachweise Bearbeiten ABAP Keyword Documentation auf help sap com Karl Kessler Evolution of ABAP auf blogs sap com 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 Normdaten Sachbegriff GND 4610511 6 lobid OGND AKS Abgerufen von https de wikipedia org w index php title ABAP amp oldid 236702961