Was ist SAP ABAP?
ABAP (Advanced Business Application Programming) ist eine höhere Programmiersprache. ABAP wird von SAP SE entwickelt, einem deutschen multinationalen Softwareunternehmen und weltweit führenden Anbieter von Softwarelösungen für Unternehmen zur Verwaltung von Geschäftsprozessen und Kundenbeziehungen.
Wichtige Fakten über ABAP
- ABAP in SAP ist so konzipiert, dass es im Vergleich zu anderen niedrigeren Programmiersprachen wie C und Assembler leicht zu lesen und zu schreiben ist.
- Es unterstützt sowohl prozedurale als auch objektorientierte Programmierung.
- ABAP ist der Eckpfeiler der Entwicklungsumgebung für SAP-Anwendungen und spielt eine entscheidende Rolle bei der Erweiterung, Anpassung und Erstellung von Geschäftsanwendungen innerhalb des SAP-Ökosystems, einschließlich SAP S/4HANA, SAP Business Suite, SAP NetWeaver und SAP Business Technology Platform (BTP).
Unternehmen, die SAP-Software wie SAP ERP oder SAP S/4HANA einsetzen, können ABAP nutzen, um:
- neue Anwendungen zu erstellen, die auf bestimmte Geschäftsabläufe zugeschnitten sind,
- vorhandene Anwendungen anpassen, einschließlich SAP-Funktionen, Berichte, Bildschirme und Prozesse, oder
- Schnittstellen zur Herstellung von Verbindungen zwischen SAP-Systemen und externen Systemen für den Datenaustausch implementieren.
Der NetWeaver Application Server dient als Grundlage für die meisten SAP-Anwendungen und bietet eine zuverlässige Laufzeitumgebung für SAP- und andere in ABAP erstellte Anwendungen. In der Vergangenheit war ABAP die einzige Sprache, die für SAP-Anwendungen verwendet wurde, was sie zu einem Kernbestandteil des Ökosystems machte.
Darüber hinaus gewann auch Java für Integrationsszenarien und webbasierte Anwendungen an Sichtbarkeit und Bekanntheit. Viele moderne SAP-Systeme verwenden sowohl ABAP- als auch Java-Komponenten.
C++ spielt eine Schlüsselrolle beim Aufbau des ABAP-Kernels, der für die reibungslose Ausführung von ABAP-Code unerlässlich ist. Es trägt dazu bei, die Abläufe innerhalb der ABAP-Umgebung schnell und effizient zu halten, was besonders für große Unternehmensanwendungen wichtig ist. Während Entwickler normalerweise mit der ABAP-Sprache selbst arbeiten, unterstützt C++ das zugrunde liegende System. Da ABAP eine SAP-eigene Sprache ist, benötigen Sie eine SAP-Lizenz, wenn Sie ABAP-Code entwickeln oder ausführen möchten.
Verwendungsszenarien für ABAP
ABAP ist eine beliebte Wahl zur Programmentwicklung innerhalb von Unternehmen, insbesondere wenn eine enge Integration mit bestehenden SAP-Systemen wie SAP ERP, S/4HANA und BW/4HANA erforderlich ist. Es bietet direkten Zugriff auf Datenmodelle und Geschäftslogik und erleichtert die Anpassung, Änderung oder Erweiterung der SAP-Standardfunktionen entsprechend den betrieblichen Anforderungen.
Darüber hinaus ist ABAP äußerst effektiv bei der Verarbeitung großer Datenmengen, der Transformation von Daten sowie der Verwaltung von Transaktionsprozessen, insbesondere bei der Verwendung von ABAP-Push-Down-Techniken, welche die In-Memory-Funktionen von SAP HANA nutzen.
Außerdem kann ABAP verwendet werden, um SAP-Lösungen so anzupassen, dass sie sich reibungslos in die SAP-Kernsysteme integrieren lassen. Dies gilt insbesondere für solche Anwendungen, die in Nicht-ABAP-Sprachen entwickelt wurden, darunter SAP Ariba, Business One, SuccessFactors und SAP Concur.
Besondere Eigenschaften von ABAP
ABAP hat mehrere Eigenschaften, die es zu einer hervorragenden Wahl für die Entwicklung von Geschäftsanwendungen machen:
- ABAP ist für die Entwicklung von Geschäftsanwendungen konzipiert und optimiert, die eine umfangreiche Datenverarbeitung und komplexe Logik erfordern.
- ABAP Workbench beinhaltet eine Reihe von Tools, die als integrierte Entwicklungsumgebung (IDE) zum Erstellen, Ändern und Debuggen von ABAP-Anwendungen dienen.
- ABAP bietet ein zentrales Repository zur Speicherung von Anwendungskomponenten und Code, was die Verwaltung und Versionierung erleichtert.
- ABAP bietet dynamische Speichermechanismen für die Datenverwaltung während der Ausführung, darunter interne Tabellen, Strukturen und Arbeitsbereiche.
- ABAP bietet einen Standardmechanismus für Transportaufträge zwecks Speicherung, Verwaltung und Übertragung von Entwicklungsobjekten zwischen verschiedenen SAP-Umgebungen, einschließlich Dev, QA und Production.
- ABAP unterstützt die Erstellung von PDF- und XML-Dokumenten mit SAPscript und SmartForms.
- ABAP unterstützt Anwendungen mit Anzeigen in mehreren Sprachen und erfordert die Verfügbarkeit eines Sprachübersetzungssystems.
Warum ABAP lernen?
ABAP ist für unternehmenskritische Geschäftsprozesse unverzichtbar und stellt für SAP-Experten eine wertvolle Qualifikation dar. Seit Jahrzehnten bildet sie das technologische Rückgrat von SAP und hat sich in vielen SAP-Lösungen bewährt. Ein bemerkenswertes Beispiel ist die SAP Business Suite, das traditionelle On-Premises-ERP-System, auf das sich viele Unternehmen auch heute noch verlassen.
ABAP-Anwendungen:
- wurden zur Verwaltung großer Datenmengen entwickelt,
- verwalten komplexe Geschäftsprozesse,
- bieten Skalierbarkeit, um die Anforderungen von Millionen von Transaktionen täglich in den größten Unternehmen zu erfüllen, und
- stellen Tools und Frameworks zur Erweiterbarkeit des Kernsystems ohne Änderungen bereit.
Die moderne ABAP-Plattform kombiniert die SAP-HANA-Datenbank im Backend, den ABAP-Server für eine stabile und sichere Ausführung und die Integration mit der Benutzeroberfläche SAP Fiori zu einem digitalen Benutzererlebnis. Diese Integration bietet eine umfassende Lösung für die Anwendungsentwicklung und -laufzeit, mit der Entwickler Geschäftsanwendungen in einer einzigen, einheitlichen Umgebung erstellen können.
SAP konzentriert sich darauf, ABAP kontinuierlich zu erweitern, um neue Geschäftsszenarien und innovative Anwendungsentwicklung zu unterstützen. Dazu werden Cloud-Computing, In-Memory-Verarbeitung und intelligente Technologien wie ABAP RESTful Application Programming miteinander integriert. Dies erhöht die Effizienz des Systems und entspricht den Grundsätzen moderner Softwaretechnik.
Laut SAP-Statistiken laufen ABAP-Implementierungen auf mehr als 100.000 SAP-Kundensystemen weltweit, was eine weit verbreitete Akzeptanz beweist und den Bedarf an ABAP-Entwicklern zur Unterstützung, Wartung und Verbesserung von unternehmenstauglichen Geschäftsprozessen und Anwendungen garantiert. Aufgrund seiner integrierten und selbstkompilierenden Natur rationalisiert ABAP den Entwicklungszyklus, reduziert die Gesamtkosten der Entwicklung und verringert das Fehlerpotenzial.
Entwickler müssen ABAP erlernen, um zu verstehen, wie diese kritischen SAP-Systeme funktionieren und wie sie für spezifische Geschäftsanforderungen angepasst werden können. Folgende Statistiken untermauern dies:
- Mehr als 5.000 SAP-Business-Suite-Systeme belegen die anhaltende Relevanz von ABAP.
- Über 64.000 Standalone-Systeme zeigen die große Anzahl unabhängiger ABAP-Installationen.
- Etwa 4,5 Millionen registrierte ABAP-Entwickler bilden eine große aktive Nutzergemeinschaft.
- Über 1.650 SAP-S/4HANA-Projekte beweisen die Reichweite von ABAP in den neuesten S/4HANA-Implementierungen.
Geschichte von ABAP
Seit seiner Einführung hat ABAP einen bedeutenden Wandel von einer einfachen Berichtssprache zu einer leistungsstarken und unternehmenstauglichen Plattform zur Anwendungsentwicklung vollzogen.
Hier ist eine kurze Zeitleiste zur Entwicklung von ABAP:
- 1980er: Im Jahr 1983 wurde ABAP zunächst als prozedurale Sprache für Berichtszwecke innerhalb des SAP-R/2-Systems eingeführt, einem Mainframe-basierten ERP-System. Sie wurde nicht nur für Softwareentwickler, sondern für Geschäftsleute im Allgemeinen konzipiert.
- Weiterentwicklung: Parallel zur Entwicklung von SAP von R/2 zu R/3 hat sich auch ABAP weiterentwickelt und ist über eine einfache Berichtssprache hinaus zu einer vollwertigen Programmiersprache zur Softwareentwicklung für Unternehmen geworden. Sie wurde während der gesamten Entwicklung von SAP R/3 in den späten 1980er und frühen 1990er Jahren verwendet.
- 1992: Als Ergebnis der Abkehr von der Mainframe-basierten Architektur wurde SAP R/3 im Jahr 1992 als Client/Server-Architekturmodell veröffentlicht, das verteiltere und flexiblere R/3-Implementierungen ermöglichte und ABAP als Kernsprache für die Anwendungsentwicklung und -anpassung verwendete.
- 1999: Mit dem wachsenden Bedarf an objektorientierter Programmierung führte SAP eine objektorientierte Erweiterung von ABAP ein, die auch als ABAP Objects bekannt ist. Damit wurde der Grundstein für mehr modularen, wiederverwendbaren und wartbaren ABAP-Code gelegt.
- 2000: Mit der Veröffentlichung von SAP R/3 Enterprise Edition 4.6 C führte SAP eine formalere Integration objektorientierter Programmierprinzipien in ABAP ein. Diese ermöglichte es Entwicklern, Objekte und Klassen zu erstellen und Konzepte wie Vererbung und Polymorphismus in ABAP zu verwenden, wodurch es näher an moderne Programmierpraktiken herangeführt wurde.
- 2010er: Mitte bis Ende der 2000er begann SAP mit der frühen Entwicklung und Veröffentlichung seiner neuen Entwicklungsplattform NetWeaver und verbesserte die ABAP-Funktionen kontinuierlich. Mit den NetWeaver-Releases 7.4 und 7.5 wurde jedoch die Unterstützung von ABAP und Java eingeführt, einschließlich neuer Funktionen wie eine neue Syntax, Ausdrücke und prägnanterer und lesbarerer Code, verbesserte Open-SQL-Syntax, mit ABAP-verwaltete Datenbankprozeduren (AMDP) für verbesserte Leistung und Core Data Services Views (CDS Views) als robuste Infrastruktur zur Datenmodellierung. NetWeaver bildete die Grundlage für die SAP-S/4HANA-Plattform und verlagerte die Verarbeitungslogik von der Anwendungsebene auf die In-Memory-Datenbankebene. Die eröffnete neue Möglichkeiten der Programmierung, darunter Datenverarbeitung in Echtzeit, verbesserte Leistung und erweiterte Analysen.
- Jüngste Vergangenheit: In der jüngsten Vergangenheit wurde ABAP in der Cloud-Plattform eingeführt, und zwar insbesondere mit SAP BTP, das die Cloud-native ABAP-Entwicklung ermöglicht. Neue Programmiermodelle wie die ABAP-Rolle in HANA-optimierten OData-Dienste für SAP-Fiori-Anwendungen, die Analysen, Transaktionen und Suchszenarien unterstützen, und das Modul ABAP RESTful Application Programming zur Entwicklung von Cloud-fähigen Fiori-Anwendungen in S/4HANA. Die moderne ABAP-Entwicklung umfasst einen zweigleisigen Methodenansatz, bei dem Entwickler gleichzeitig mit klassischem ABAP und modernem AMDP arbeiten können, um Anwendungen für eine optimierte Leistung auf Grundlage der In-Memory-Datenbank HANA zu erstellen.
Neues vs. altes ABAP
Entwickler bezeichnen Programmiertechniken oft als alt oder klassisch oder neu oder modern – je nach der Epoche, in der diese Techniken verwendet wurden.
| Altes ABAP | Neues ABAP |
| Von den 1980er Jahren bis zum Jahr 2000 wurde ABAP als prozedurale Programmiersprache charakterisiert, da der Schwerpunkt weniger auf objektorientierter Programmierung und einer starken Verwendung globaler Daten lag, sondern auf Berichten, Formularen und Modulen. | In der modernen Ära wurde OOP formal in ABAP integriert und mit den Releases 4.6C und 7.x weiterentwickelt (beispielsweise mit ABAP 7.4 und 7.5). |
| Der alte Programmiersprachenstil von ABAP ist für ältere SAP-Systeme immer noch relevant, gestaltet sich aber als weniger wartbar und effizient als modernes ABAP. | Die Versionen 4.6C und 7.x, also beispielsweise ABAP 7.4 und 7.5, führten Funktionen wie eine moderne Syntax, Inline-Deklarationen, Ausdrücke, Code-Pushdown zu HANA und die Verwendung neuer Entwicklungstechniken ein, darunter RAP, AMDP, Open-SQL-Erweiterungen und CDS-Views-Modelle. |
Die Einführung von SAP HANA war ebenfalls ein wichtiger Faktor für die Bezeichnung „neu/modern“ in ABAP, da sie sich direkt auf die Leistung des Codes auswirkt, indem sie In-Memory-Verarbeitung ermöglicht. Dies wiederum verbessert die Skalierbarkeit durch die Verringerung des Datentransfers zwischen Datenbank und Anwendung sowie die Integration als einheitliche Plattform für transaktionale und analytische Workloads.
SAP NetWeaver und ABAP
SAP NetWeaver ist ein Anwendungsserver für viele SAP-Lösungen mit tief integriertem ABAP. Es verwaltet die zugrunde liegenden Betriebssystem- und Datenbankinteraktionen.
NetWeaver bietet eine Abstraktionsebene zwischen Geschäftsanwendungen, Betriebssystemen und Datenbanken, die SAP-Anwendungen eine Plattformunabhängigkeit ermöglicht.
NetWeaver unterstützt verschiedene Betriebssysteme, darunter UNIX-Varianten wie AIX, Solaris, Linux, HP-UX, Windows, IBM iSeries i5/OS und IBM System zSeries z/OS.
Zudem unterstützt NetWeaver verschiedene Datenbanken, wie die In-Memory-Datenbank SAP HANA, SAP ASE (früher Sybase), Microsoft SQL Server, Oracle, MaxDB, Informix und IBM DB2.
ABAP-Architektur und -Umgebung
Die ABAP-Architektur und -Umgebung sind für die Abwicklung komplexer Geschäftsprozesse auf Unternehmensebene konzipiert und eng mit dem NetWeaver Application Server integriert, der eine Reihe von Tools und Diensten für Entwickler bereitstellt. Das Verständnis der Architektur und der Umgebung von ABAP ist für jeden unerlässlich, der mit ABAP arbeitet oder die effektive Entwicklung von Anwendungen plant.
Die ABAP-Umgebung umfasst ein Laufzeitsystem, eine Entwicklungsinfrastruktur, eine Datenbankschnittstelle und Präsentationstools, die alle in einer mehrstufigen Architektur strukturiert sind.
ABAP Runtime Environment
Die ABAP Runtime Environment ist die zentrale Engine, auf der ABAP-Programme ausgeführt werden. Sie regelt die Interaktion mit den Systemkomponenten, darunter den Zugriff auf Daten oder die Interaktion mit Benutzern.
Die ABAP-Laufzeitumgebung besteht aus den folgenden Kernkomponenten:
| Laufzeitumgebung | Beschreibung |
| Programmspeicherung | Im Gegensatz zu vielen anderen Programmiersprachen, die Programme als separate Dateien im Dateisystem des Betriebssystems speichern, werden ABAP-Programme direkt in der SAP-Datenbank gespeichert, was die Versionskontrolle und die Bereitstellung vereinfacht. |
| Code-Formen | ABAP-Quelltext existiert in zwei Formen, einem für den Menschen lesbaren und editierbaren Quelltext und generiertem Code, der eine binäre Darstellung des ausgeführten Quelltextes ist und vom Laufzeitsystem ausgeführt wird. |
| Laufzeitsystem | Dies ist die Kernkomponente des SAP-Kernels, die als virtuelle Maschine fungiert und die Verarbeitung von ABAP-Anweisungen, die Dynpro-Ablauflogik, die Speicherverwaltung und die Ereignisbehandlung steuert. |
| Datenbank-Schnittstelle | Diese Schnittstelle übersetzt ABAP-Anweisungen, die in Open SQL geschrieben wurden, in Native SQL DBMS, um sie für die zugrunde liegende Datenbank verständlich zu machen. |
| Datenbank-Kommunikation | Die gesamte Kommunikation mit relationalen Datenbanken, wie zum Beispiel die Verbindungs- und Transaktionssteuerung, wird von der Laufzeitumgebung abgewickelt, um einen effizienten Datenzugriff und eine effiziente Datenmanipulation zu ermöglichen. |
| Pufferung | Daten und Tabellen, auf die häufig zugegriffen wird, werden im Speicher des NetWeaver-Anwendungsservers abgelegt, um die Leistung zu verbessern und die Ladezeit der Datenbank zu verringern. |
SAP-Systeme und -Landschaften
ABAP-Anwendungen und -Programme sind in Landschaften strukturiert und organisiert, um den Lebenszyklus der Softwareentwicklung und den Geschäftsbetrieb zu unterstützen.
Die wichtigsten Komponenten von SAP-Systemen sind:
SAP-System: Ein SAP-System besteht aus einer zentralen relationalen Datenbank und einem oder mehreren Anwendungsservern, die in der Regel „Instanzen“ genannt werden. Im Zusammenspiel bieten diese Komponenten die volle Funktionalität der SAP-Software.
| SAP-Systemlandschaft | Beschreibung |
| Mehrere Instanzen | Zur Bewältigung großer Arbeitslasten, für erhöhte Leistung und zum Lastenausgleich kann das SAP-System mehrere Anwendungsserver-Instanzen verwenden, um sicherzustellen, dass Benutzeranfragen auf verschiedene Instanzen verteilt werden. |
| Web-Application-Server-Landschaften | Diese Landschaften ermöglicht es Unternehmen, mehrstufige Strukturen zu schaffen, die Entwicklungs-, Test- und Produktionsumgebungen voneinander trennen. |
| Entwicklungssystem | Das Bereitstellungssystem ist der Ort, an dem Entwickler ihren Code schreiben, testen und anpassen. |
| Prüf- und Qualitätssicherungssystem | Hier testen und validieren QA-Benutzer die entwickelten Programme anhand der bestehenden Anforderungen und geben den Entwicklern Feedback. |
| Produktionssystem | Dies ist das eigentliche Live-SAP-System, das von Endbenutzern verwendet wird und in dem die Geschäftsprozesse und Transaktionen ausgeführt werden. |
| Change and Transport System (CTS) | Hierbei handelt es sich um ein SAP-Tool, das entwickelte Objekte wie Programme oder Konfigurationen zwischen Entwicklungs-, Test- und Produktionssystemen transportiert. Außerdem bietet es die Kontrolle von Nebenläufigkeit, Versionsverwaltung und Bereitstellung, sodass mehrere Entwickler konfliktfrei zusammenarbeiten können. |
| Ebenen von Web-Application-Servern | Ein Web Application Server besteht aus drei Ebenen: der Datenbank-, der Anwendungs- und der Präsentationsebene. |
| Datenbankebene | Diese Ebene enthält eine physische DBMS-Datenbank und eine Datenbankverwaltungssoftware. |
| Anwendungsebene | Diese Ebene enthält eine oder mehrere Instanzen des SAP-Systems. Sie ist für die Abwicklung von Geschäftstransaktionen, die Massenverarbeitung und die ABAP-Entwicklung zuständig. |
| Präsentationsebene | Dies ist die Benutzeroberfläche, über die Benutzer mit dem SAP-System interagieren. Dabei kann es sich um die traditionelle SAP GUI oder die moderne webbasierte Fiori-Oberfläche handeln. |
| Datenfluss | Der Datenfluss entspricht dem folgenden Diagramm: Präsentation > Anwendung > Datenbank ⇄ Anwendung ⇄ Präsentation. Es ist ein sequentieller Fluss. Benutzereingaben werden von der Präsentationsebene entgegengenommen und an die Anwendungsebene weitergeleitet, welche anschließend mit der Datenbankschicht interagiert, um Daten zu speichern oder abzurufen. Daraufhin erhält die Anwendungsebene die Ergebnisse von der Datenbankebene zurück, formatiert sie und gibt sie an die Präsentationsebene zur Anzeige für den Endbenutzer weiter. |
Software-Ebenen (Komponenten)
SAP-Systeme bestehen aus einer Kombination von Softwarekomponenten, die verschiedene Funktionen erfüllen.
Einige wichtige Softwarekomponenten sind:
- SAP_BASIS: Dies ist die Basiskomponente, die von allen ABAP-Systemen benötigt wird, um eine Laufzeitumgebung für Kommunikationsdienste, Systemverwaltungstools und die Datenbankkonnektivität bereitzustellen.
- SAP_ABA: Diese Komponente verwaltet anwendungsübergreifende Funktionen, die vielen Geschäftsanwendungen gemeinsam sind, darunter allgemeine Anwendungsdienste sowie Geschäftspartner- und Adressverwaltung.
- SAP_UI: Diese Komponente wird zur Erstellung moderner Benutzeroberflächen, insbesondere für SAP UI5, verwendet. SAP Fiori basiert auf SAP UI5.
- BBPCRM: Dies ist eine Anwendungs- bzw. Modulkomponente. In diesem Beispiel ist sie spezifisch für das Customer Relationship Management (CRM). Andere Beispiele sind Anwendungskomponenten wie die Module FI für die Finanzbuchhaltung, SD für den Vertrieb und CO für das Controlling.
Kommunikationskomponenten
SAP-Systeme verwenden mehrere Komponenten für die interne und externe Kommunikation.
Remote Function Call (RFC) ist die SAP-Standardschnittstelle für die Kommunikation und den Datentransfer zwischen verschiedenen SAP- und Nicht-SAP-Systemen. Aufrufe können synchron sein und eine Antwort erfordern oder asynchron für eine verzögerte Verarbeitung, was flexible Integrationen ermöglicht.
Der Internet Communication Manager (ICM) ist eine weitere Komponente des SAP-Web-Application-Servers, die für die Verwaltung der gesamten Internetkommunikation als Schnittstelle zwischen der Außenwelt und den SAP-Systemen zuständig ist. Der ICM unterstützt mehrere Protokolle wie HTTP, HTTPS und SMTP.
Entwicklungsumgebung und Tools
Die ABAP-Entwicklungsumgebung besteht aus einer Reihe integrierter Werkzeuge, die Entwicklern bei der Erstellung, Verwaltung und Ausführung von ABAP-Programmen helfen.
ABAP Workbench ist das Herzstück der ABAP-Entwicklungsumgebung und bietet eine zentrale Schnittstelle für Entwickler.
ABAP Workbench
ABAP Workbench ist die integrierte Entwicklungsumgebung (IDE) von SAP, die alle notwendigen Tools für den gesamten Entwicklungszyklus bereitstellt, einschließlich der Erstellung, Änderung und Ausführung von ABAP-Programmen.
Entwickler können ABAP Workbench direkt über die SAP GUI oder durch Eingabe von T-Code SE80 im Feld Object Navigator aufrufen. Dabei handelt es sich um eine Sammlung verschiedener Tools, die jeweils einem bestimmten Zweck im Entwicklungsprozess dienen.
Die folgenden Standardtools werden weiter unten detailliert beschrieben:
- ABAP Editor
- ABAP Dictionary
- ABAP Painter
- Function Builder
- Class Builder
- Web Application Builder
ABAP Editor (SE38)
Dies ist das Hauptwerkzeug für verschiedene Arten von ABAP-Programmen, einschließlich zum Schreiben und Modifizieren, für den Abruf und die Präsentation von Daten in Form von Berichten, Modulpool-Programmen für die Verarbeitungslogik von Bildschirmelementen in Dialogfenstern, wiederverwendbaren Codeblöcken, die in anderen Programmen genutzt werden können, und Sammlungen von Unterroutinen.
Der ABAP Editor bietet zwei Modi:
- einen Frontend-Editor mit neuem und altem Look sowie
- einen Backend-Editor, der als einfacher textbasierter Editor direkt auf dem Anwendungsserver läuft.
Beide Modi können den Quellcode lesen, der in einem dieser Modi erstellt wurde. Der ABAP Editor bietet mehrere Standardfunktionen, darunter Syntaxhervorhebung für Schlüsselwörter, Variablen und Kommentare sowie automatische Code-Vorschläge, die dazu beitragen, Fehler zu reduzieren und die Entwicklung zu beschleunigen.
ABAP Dictionary (SE11)
ABAP Dictionary dient als zentrales Repository für Metadatenobjekte innerhalb des SAP-Systems. Es beschreibt die Eigenschaften und Strukturen von Datenobjekten, die in einem ABAP-Programm verwendet werden.
Entwickler definieren im ABAP Dictionary verschiedene Datenbankobjekte, darunter beispielsweise Domains, die zur Bestimmung der technischen Eigenschaften eines Feldes, wie Datentyp, Länge und Wertebereich, verwendet werden.
Weitere im ABAP Dictionary definierbare Datenbankobjekte sind Datenelemente, transparente Tabellen, Ansichten, Strukturen und Indizes. Da die Datenobjekte im ABAP-Wörterbuch zentralisiert sind, können andere ABAP-Programme, die diese Objekte verwenden, im Wörterbuch ihre Definition abfragen. Die gewährleistet die systemweite Einheitlichkeit von Daten und reduziert Redundanzen.
ABAP Painter (SE41/SE51)
ABAP Painter enthält Tools, mit denen Entwickler grafische Oberflächenelemente wie GUI-Status und dynamische Programme oder Bildschirme gestalten können.
Dazu dienen die beiden Hauptwerkzeuge Menu Painter und Screen Painter.
- Menu Painter wird zum Erstellen von Menüs, Symbolleisten und Funktionstastenzuweisungen verwendet.
- Screen Painter ermöglicht die Erstellung visueller Darstellungen auf Bildschirmen (Dynpros), die dem Benutzer angezeigt werden, darunter Eingabe-/Ausgabefelder, Steuerelemente für Tabellen, Schaltflächen und andere visuelle Elemente.
Function Builder (SE37)
Der Function Builder ist ein spezielles Werkzeug zur Erstellung und Pflege von Funktionsbausteinen, d. h. von wiederverwendbaren Prozeduren innerhalb von ABAP, die zur Durchführung bestimmter Aufgaben entwickelt wurden. Sie können aus anderen ABAP-Programmen aufgerufen werden.
Ein Funktionsmodul kann dazu verwendet werden, die Summe einer Liste von Zahlen zu berechnen, was beispielsweise zur Währungsumrechnung, zum Abrufen von Daten aus einer Datenbank oder zur Überprüfung von Benutzereingaben dient.
Class Builder (SE24)
Der Class Builder wird für die Entwicklung von objektorientiertem ABAP-Code verwendet, vor allem für die Erstellung und Pflege von Class Pools. Class Pools sind Repository-Objekte, die die Definitionen und Implementierungen von globalen Schnittstellen und Klassen enthalten, einschließlich Methoden, Attribute, Vererbungsstrukturen und Ereignisse.
Web Application Builder
Der Web Application Builder wird zur Entwicklung webbasierter Anwendungen wie Business Server Pages (BSPs), einschließlich ASP und JSP, verwendet.
BSPs werden im Allgemeinen als Legacy-Technologie betrachtet, obwohl SAP sie weiterhin für alte SAP-Systeme unterstützt, die immer noch in Unternehmen im Einsatz sind.
Zur Entwicklung neuer oder moderner Webanwendungen ist SAP Fiori über SAP UI5 und das Modell ABAP RESTful Application Programming ein bevorzugter Ansatz.
Sie können auf den Web Application Builder für BSPs zugreifen, indem Sie im Object Navigator den T-Code SE80 eingeben und dann die BSP Library und die BSP Application angeben.
ABAP Development Tools (ADT) / ABAP in Eclipse
ABAP Development Tools, früher auch als ABAP in Eclipse bezeichnet, bilden den Übergang zu modernen IDEs für die ABAP-Entwicklung.
Dieses von SAP bereitgestellte Toolset ist ein in die Eclipse IDE integriertes Plug-in, das eine leistungsfähigere Programmierumgebung als die traditionelle ABAP Workbench bietet.
Die Entwickler arbeiten lokal in ihrer Eclipse-Umgebung und nutzen dabei Funktionen wie Versionskontrolle, integriertes Debugging, Refactoring und erweiterte Code-Vervollständigung. Die Arbeit wird kontinuierlich mit dem Backend-ABAP-System synchronisiert.
ADT ist die bevorzugte Entwicklungsumgebung für SAP S/4HANA und Cloud-Umgebungen und unterstützt moderne ABAP-Konzepte wie CDS Views, RAP und AMDP-Programmiermodelle.
ABAP-Syntax und -Konzepte
ABAP hat eine eigene, einzigartige Syntax und strukturelle Regeln, die auf die Entwicklung von Unternehmensanwendungen in SAP zugeschnitten sind und für Effizienz und Klarheit in der Entwicklung sorgen. Obwohl diese Syntax ihren Ursprung in der prozeduralen Programmierung hat, wurde sie erheblich weiterentwickelt und unterstützt nun eine vollwertige objektorientierte Programmierung, Inline-Deklarationen und moderne Syntaxerweiterungen.
Grundlagen der ABAP-Syntax
Die ABAP-Syntax hält sich aus Gründen der Klarheit und Konsistenz an eine Reihe von Regeln. Programme sind aus Anweisungen aufgebaut, die sich aus folgenden Elementen zusammensetzen:
- Schlüsselwörter: DATA, WRITE oder SELECT sind reservierte Wörter zur Definition von Operationen.
- Zusätze: Diese Klauseln ändern das Verhalten von Schlüsselwörtern wie TYPE, VALUE, From usw.
- Operanden: Dies sind die Datenobjekte, auf denen eine Operation ausgeführt wird, zum Beispiel Namen von Variablen.
- Alle Ausdrücke müssen mit einem Punkt enden.
DATA lv_text TYPE string VALUE ‘Hello’.
WRITE lv_text.
ABAP unterscheidet nicht zwischen Groß- und Kleinschreibung. Somit werden „DATA“, „Data“ und „data“ vom Compiler alle gleich behandelt.
Auch wenn dies erhöhte Flexibilität bietet, sollte am besten eine einheitliche Namenskonvention verwendet werden. Entwickler nutzen Kommentare, um den Code zur besseren Lesbarkeit zu erläutern, anstatt Erläuterungen in den Code selbst einzubauen:
- Ein Sternchen (*) am Anfang einer ABAP-Zeile kennzeichnet diese als Kommentar.
- Für Inline-Kommentare werden doppelte Anführungszeichen (‘’) verwendet.
- Während Leerzeichen in Ausdrücken von Bedeutung sind, ist ABAP flexibel und intelligent genug, um mehrere Leerzeichen als ein einziges Leerzeichen zu behandeln.
Grundlegende Programmierelemente
ABAP stellt grundlegende Programmierelemente bereit, um alltägliche Aufgaben zu erledigen, zum Beispiel dieses einfache Hello-World-Programm, das die Grundstruktur veranschaulicht:
REPORT TEST.
WRITE ‘Hello, World!’.
Mit der Anweisung REPORT wird der Programmname festgelegt, mit WRITE der Text „Hello, World!“ auf dem Bildschirm angezeigt.
Verkettete Anweisungen
Die Verkettung von Anweisungen bezieht sich auf die Kombination von Anweisungen, die dieselben Anfangsteile oder dasselbe Schlüsselwort enthalten. Dies verringert Redundanzen und macht den Code übersichtlicher.
ABAP verwendet den Doppelpunkt-Operator (:), um Anweisungen zu kombinieren. Beispielsweise wird der folgende Code mit derselben WRITE-Anweisung dreimal geschrieben:
WRITE CUSTOMERINFO-FIRSTNAME.
WRITE CUSTOMERINFO-MIDDLENAME.
WRITE CUSTOMERINFO-LASTNAME.
Er kann jedoch durch die Verkettung der WRITE-Anweisung auch wie folgt geschrieben werden:
WRITE: CUSTOMERINFO-FIRSTNAME, CUSTOMERINFO-MIDDLENAME, CUSTOMERINFO-LASTNAME.
Datentypen und Variablen
ABAP unterstützt sowohl vordefinierte als auch benutzerdefinierte Datentypen und ermöglicht die Speicherung verschiedener Deklarationsoptionen für Datentypen und Variablen.
Die nachfolgenden Datentypen sind in ABAP eingebaut:
- I: Integer (für ganze Zahlen)
- P: gepackte/präzise Dezimalzahlen zur Verwendung für Währungs- oder Mengenfelder
- F: Fließkommazahlen oder Zahlen mit Dezimalstellen, geeignet für wissenschaftliche Berechnungen
- N: numerische Zeichen für Zeichenketten nur aus Ziffern
- C (Zeichen): für Zeichenketten mit fester Länge
- D: Datum für Datumsformate
- T: Zeit für Zeitformate
- X: Hexadezimal für Rohbyte-Werte mit fester Länge
- STRING: für Zeichenketten mit variabler Länge
- XSTRING: für Rohbyte-Arrays mit variabler Länge
Zudem können benutzerdefinierte Datentypen über ABAP-Wörterbuchobjekte wie Strukturen, Datenelemente, Ansichten, Tabellen, Schnittstellen und Objekte deklariert werden. Datums- und Zeitangaben können mit ganzen Zahlen und Zeichenketten verarbeitet werden, was eine flexible Handhabung und Anzeige ermöglicht.
ABAP bietet mehrere Möglichkeiten, Variablen zu deklarieren, was vor ihrer Verwendung erfolgen muss. Variablen können wie folgt mit einer traditionellen expliziten Deklaration anhand der DATA-Anweisung deklariert werden:
DATA: COUNTER TYPE I,
VALIDITY TYPE I VALUE 60,
LASTNAME (20) TYPE C.
Die obige Anweisung deklariert drei Variablen: COUNTER als ganze Zahl, VALIDITY als ganze Zahl mit einem Anfangswert von 60 und LASTNAME als Zeichenkette der Länge 20.
ABAP 7.4 und spätere Versionen bieten eine moderne Art der Variablendeklaration, beispielsweise durch Inline-Deklarationen am Ort ihrer ersten Verwendung. Dies macht den Code übersichtlicher.
DATA (counter) = 0.
DATA (Nachname) = 'Smith'.
ABAP Objects (objektorientierte Programmierung)
ABAP Objects ist eine objektorientierte Erweiterung der Sprache ABAP, die es Entwicklern ermöglicht, moderne objektorientierte Prinzipien anzuwenden. Dies führt zu einem modulareren, wiederverwendbaren und wartbaren Code. Seit Version 4.6C ist ABAP Objects vollständig in ABAP integriert und voll kompatibel mit der bestehenden prozeduralen Sprache.
Entwickler können prozeduralen und objektorientierten Code im selben Programm mischen. Die wichtigsten Begriffe in ABAP sind Objekte, Klassen, Methoden, Objektreferenzen, Schnittstellen und Attribute.
ABAP Objects unterstützt die gleichen OOP-Prinzipien:
- Kapselung: Bündelung von Daten und Methoden, die mit diesen Daten arbeiten, innerhalb einer Klasse, wodurch die Sichtbarkeit von Ressourcen eingeschränkt wird.
- Vererbung: Ein Mechanismus, mit dem eine neue Klasse das Verhalten und die Eigenschaften einer bestehenden Klasse nutzen kann, wodurch eine hierarchische Organisation und die Wiederverwendung von Code deklariert wird.
- Polymorphismus: Ermöglicht, dass sich identische Objekte je nach der Klasse, die sie aufrufen, unterschiedlich verhalten.
ABAP-Programmierkonstrukte und -Funktionen
ABAP bietet eine Vielzahl von Programmierkonstrukten und Funktionen.
In diesem Abschnitt werden die wichtigsten Konzepte erläutert, darunter ABAP-Anweisungen, interne Tabellen, Transaktionen und Programmtypen.
ABAP-Anweisungen
Anweisungen sind die Bausteine von Programmen, die verschiedene Operationen durchführen, zum Beispiel Datenmanipulation, Eingabe/Ausgabe und Kontrollfluss. ABAP bietet eingebaute Anweisungen, die für die Sprache spezifisch sind. Einige Anweisungen folgen der traditionellen anweisungsbasierten Syntax, ähnlich wie bei COBOL, wo Operationen mit Schlüsselwörtern angegeben werden können, beispielsweise:
ADD TAX TO PRICE.
Moderne ABAP-Anweisungen ab Release 7.4 folgen einer Syntax, die wie bei C oder Java auf Ausdrücken zur Berechnung von Werten basiert, beispielsweise:
PRICE = PRICE + TAX.
Interne Tabellen
Interne Tabellen sind eine grundlegende Datenstruktur in der Programmiersprache ABAP.
Sie sind äußerst effizient und optimiert, da sie zur Speicherung und Bearbeitung von Daten (Lesen, Schreiben und Verarbeiten) im Arbeitsspeicher von Anwendungsservern während der Programmausführung konzipiert sind.
Sie sind vergleichbar mit Arrays oder Listen strukturierter Datensätze, wie Vektoren von Structs in C++ oder Listen von Objekten in Java.
Die aus der Datenbank abgerufenen Daten werden zur Verarbeitung in internen Tabellen zwischengespeichert, bevor sie weiterverarbeitet oder auf dem Bildschirm angezeigt werden. Sie müssen eine interne Tabelle zunächst mit der TYPES-Anweisung definieren, bevor Sie sie verwenden können.
Transaktionen
Eine Transaktion in ABAP bezieht sich auf ein bestimmtes Programm, eine Folge von Dynpros oder die Ausführung eines Geschäftsprozesses. Sie können Prozesse und Funktionen öffnen, indem Sie einen eindeutigen Transaktionscode in das Befehlsfeld von Object Navigator eingeben, der einen schnellen Zugriff darauf ermöglicht.
Hier sind einige Beispiele für Transaktionscodes:
- SE38: Öffnet den ABAP Editor zur Programmentwicklung.
- SE09: Öffnet den Transport Organizer zur Verwaltung von Transportaufträgen.
- SE11: Öffnet ABAP Dictionary für Datenobjektdefinitionen.
- SE16N: Zeigt den Inhalt des General Table an.
- SE24: Öffnet Class Builder für die objektorientierte Entwicklung.
- SE37: Öffnet Function Builder zur Entwicklung von Funktionsmodulen.
- ST22: Öffnet ABAP Dump Analysis, um Programmfehler zu untersuchen.
Andere Möglichkeiten zum Starten von Prozessen oder Funktionen neben der direkten Eingabe der T-Codes sind die Navigation über SAP-GUI-Menüs oder die programmatische Verwendung der Anweisung CALL TRANSACTION zur Ausführung und der Anweisung LEAVE TO TRANSACTION zum Beenden eines laufenden Programms.
ABAP-Programmtypen
ABAP unterstützt mehrere Programmtypen, die nach ihrem Ausführungsverhalten in zwei Kategorien eingeteilt werden:
Ausführbare Programme
Benutzer können diese Programme direkt ausführen oder sie für die Hintergrundverarbeitung einplanen, beispielsweise für Berichte zur Datenabfrage und -analyse, für Benutzereingabeparameter oder Schlüsselwörter. Die Ergebnisse werden dann in einem Listenformat angezeigt. Zu den anderen ausführbaren Programmen gehören Modulpools, die für komplexe Benutzerinteraktionen mit mehreren Bildschirmen konzipiert sind, zum Beispiel ein Assistent mit verschiedenen Bildschirmen. Sie werden auch als Dynpros bezeichnet und haben eine entsprechende Ablauflogik.
Nicht ausführbare Programme
Benutzer können diese Programme nicht direkt starten. Stattdessen dienen sie als Bausteine oder Container für Definitionen und wiederverwendbaren Code, den andere Programme nutzen können.
- INCLUDE-Module: Dies sind einfache Quellcode-Dateien, die zum Zeitpunkt der Generierung in ABAP-Programme eingebunden werden.
- Subroutinen-Pools: Diese Sammlungen von ABAP-Subroutinen aus wiederverwendbaren Codeblöcken können von anderen Programmen aus aufgerufen werden.
- Funktionsgruppen: Dies sind Bibliotheken oder Container für Funktionsbausteine und wiederverwendbare Verfahren, die von anderen Programmen aus aufgerufen werden können.
- Objektklassen: Dies sind ABAP-Klassen, die Java-Klassen ähneln und Datenattribute und Methoden für die Objekterstellung definieren.
- Schnittstellen: Enthalten leere Methodendefinitionen, die von Klassen verwendet werden können, um Polymorphismus und Entkopplung zu erreichen.
- Typenpools: Diese speziellen Repository-Objekte enthalten Sammlungen von Datentypen und Konstanten, die programmübergreifend verwendet werden können.
Core Data Services (CDS) Views
ABAP Core Data Services (CDS) Views sind ein Datenmodellierungsansatz der nächsten Generation innerhalb des SAP-Ökosystems, der mit der Einführung von SAP HANA sowohl für analytische als auch für transaktionale Anwendungen in der aktuellen und zukünftigen SAP-Architektur eingeführt wurde.
CDS-Ansichten ermöglichen es Entwicklern, semantische Datenmodelle direkt auf der Datenbankebene mit eingebetteter Geschäftslogik, Metadaten und Beziehungen zu definieren.
CDS-Ansichten werden mit der SQL-basierten Data Definition Language (DDL) definiert, sodass jeder Entwickler mit SQL-Erfahrung damit vertraut ist. Außerdem wird die Data Control Language für die Zugriffskontrolle verwendet, die festlegt, welche Benutzer oder Rollen auf die Daten zugreifen und welche Operationen sie durchführen können.
Sie verwendet „Code Pushdown“ als Kernprinzip, sodass komplexe Berechnungen, Geschäftslogik und Analysen in die Datenbankschicht verlagert werden, was die Leistung verbessert und den Datentransfer zwischen dem Anwendungsserver und der Datenbank reduziert, insbesondere in der In-Memory-Engine von HANA.
CDS-Ansichten können mit zusätzlicher Logik oder Feldern wiederverwendet werden, um die Erweiterbarkeit zu unterstützen und die Entwicklungszeit zu reduzieren.
CDS-Ansichten sind zentrale Komponenten von SAP S/4HANA-Analysen, ABAP RESTful Application Programming und SAP-Fiori-Anwendungen, die Einblicke in Echtzeit bieten sowie die Entwicklung für On-Premises- und Cloud-basierte Lösungen ermöglichen. SAP stellt das Virtual Data Model (VDM) als eine Reihe umfassender, integrierter CDS-Ansichten bereit. CDS-Sichten können mit den Eclipse-basierten ABAP Development Tools (ADT), dem SAP Business Application Studio (BAS) und der SAP Web IDE definiert werden.
Dateneingabe und Berichterstattung
Der effiziente Umgang mit Daten ist eine zentrale Säule jeder Unternehmenssoftware, sei es für die Eingabe oder die Berichterstattung. ABAP spielt eine entscheidende Rolle bei der Verwaltung und Übertragung von Daten in und aus SAP-Systemen, unabhängig davon, ob sie aus Altsystemen importiert, manuell eingegeben oder für die Entscheidungsfindung und das Berichtswesen extrahiert werden.
Dateneingabe und -übertragung
Bei SAP-Systemen ist es häufig erforderlich, Daten aus verschiedenen Quellen, einschließlich anderer SAP- oder Nicht-SAP-Systeme sowie von Benutzern, abzurufen und dann in andere Systeme zu übertragen. Diese Daten können aus verschiedenen SAP-Systemen stammen, also unter anderem von SAP ECC an SAP S/4HANA oder zwischen verschiedenen SAP-Modulen innerhalb eines SAP-Systems übertragen werden. Zudem können sie aus älteren Nicht-SAP-Systemen abgerufen und in eine neue SAP-Implementierung integriert werden, was bei einem Migrationsansatz üblich ist.
SAP bietet eine umfassende Suite von Tools für verschiedene Szenarien der Datenübertragung und -eingabe sowie unterschiedliche Datenvolumen. Dazu gehören unter anderem:
- Batch Data Communication (BDC): Dieses klassische SAP-Tool wird zur Übertragung großer Datenmengen aus externen Systemen in SAP-Systeme durch Simulation von Benutzereingaben verwendet. BDC eignet sich ideal für regelmäßige Aktualisierungen in Stapeln, wenn direkte Datenbankaktualisierungen nicht erwünscht sind.
- Intermediate Document (IDOC): IDOCs sind stark strukturierte Datencontainer, die in SAP einem Standardformat für den Datenaustausch zwischen SAP-Systemen und Nicht-SAP-Systemen folgen und üblicherweise für Prozesse wie Procure-to-Pay, Order-to-Pay oder die Stammdatenverteilung verwendet werden.
- Legacy System Migration Workbench (LSMW): Dieses assistentengesteuerte und leistungsfähige Tool innerhalb von SAP wurde speziell für die Migration von Daten aus Altsystemen in SAP entwickelt und unterstützt BDC, BAPI (Business Application Programming Interfaces) sowie IDOCs.
- Schnittstellen: Entwickler können benutzerdefinierte Programme als Schnittstellen erstellen, die es Benutzern ermöglichen, Daten direkt aus einfachen flachen Dateien wie .txt, .csv oder Microsoft-Excel-Tabellen in SAP hochzuladen. Dies macht die Methode benutzerfreundlicher und flexibler.
Neben automatisierten Tools ermöglicht SAP den Benutzern auch die direkte Eingabe von Daten über Standardtransaktionscodes. Der einfachste Ansatz ist die manuelle Eingabe von Daten unter Verwendung von Transaktionscodes, die für den jeweiligen Geschäftsprozess auf SAP-Bildschirmen relevant sind, wie zum Beispiel FB50 für die Buchung von GL-Belegen, VA01 für die Erstellung von Kundenaufträgen oder ME21N für die Erstellung von Bestellungen.
Berichterstattung
ABAP ermöglicht es den Benutzern, Geschäftsdaten abzurufen, zu analysieren und in Form von Berichten zu präsentieren, was die Überwachung und fundierte Entscheidungsfindung erleichtert. SAP bietet eine Reihe von Berichtsfunktionen, einschließlich benutzerfreundlicher Abfragetools und individuell entwickelter Berichte.
- Klassische Berichte: Diese einfachen ABAP-Berichte sind nicht interaktiv und erzeugen eine einzige, umfangreiche Ausgabeliste mit allen erforderlichen Daten. Benutzer müssen die Berichte sortieren, um nach der Erstellung auf die erforderlichen Daten zuzugreifen.
- Interaktive Berichte: Diese Berichte ermöglichen die Interaktion mit dem Benutzer. Nach der Erstellung des ersten Berichts können Benutzer detailliertere Informationen abrufen.
- SAP Query (Ad-hoc Query/InfoSet Query): Dieses leistungsfähige Tool wurde für Endbenutzer oder funktionale Berater entwickelt, um Berichte auf Grundlage ihrer Abfragen, Eingabeparameter und Ausgabefelder aus verschiedenen Quellen zu generieren, ohne dass sie über umfassende ABAP-Kenntnisse verfügen müssen.
SAP Query bietet verschiedene Arten von Berichten:
- Basisliste: Ein einfacher Bericht im Tabellenformat.
- Statistik: Erzeugt Berichte auf Grundlage statistischer Analysen wie Zählungen, Durchschnittswerten oder Summen.
- Rangliste: Erstellt Berichte auf Grundlage bestimmter Kriterien.
Auch das Drucken ist ein wichtiger Bestandteil von Geschäftsoperationen. SAP bietet eine breite Palette von Dokumenttypen für verschiedene Druckszenarien.
Druckverfahren
Der Druckprozess in SAP umfasst mehrere Schritte von der Erstellung des Dokuments bis zu seiner Ausgabe auf einem physischen Drucker. Das SAP-System erzeugt verschiedene Dokumenttypen, darunter Kundenaufträge, Bestellungen, Rechnungen und Gehaltsabrechnungen.
SAP unterstützt mehrere Druckmethoden, die auf unterschiedliche Unternehmensstrukturen und Benutzeranforderungen zugeschnitten sind.
- Lokales Drucken: Hierbei sind Drucker direkt an den lokalen Rechner des Benutzers oder den SAP-Anwendungsserver angeschlossen.
- Remote-Drucken (Netzwerk): Der Drucker ist mit dem Netzwerk verbunden, und Druckaufträge werden entweder an den Druckserver gesendet, mit dem der Drucker verbunden ist, oder an einen Netzwerkdrucker übermittelt, was in Unternehmensumgebungen üblich ist.
- Frontend-Drucken (SAP GUI für Windows/HTML): Diese Methode ermöglicht es Benutzern, Dokumente über ihren lokalen Drucker zu drucken, auch wenn dieser vom SAP-Anwendungsserver nicht erkannt wird. Dazu verwenden sie die SAP GUI oder einen Webbrowser für HTML-basierte Schnittstellen wie SAP Fiori.
- Aufbereitungsserver: Ein Aufbereitungsserver ist eine Komponente in der SAP-Druckarchitektur, bei der Druckaufträge oder initiierte Aufträge nicht direkt an den Drucker gesendet werden. Zunächst verarbeitet der Aufbereitungsserver sie. Der Aufbereitungsserver speichert Druckaufträge, verwaltet die Druckwarteschlangen, formatiert die Daten in ein druckerfreundliches Format und sendet den Druckauftrag an den entsprechenden Drucker.
Allgemeine Programmierung
ABAP unterstützt verschiedene Programmiermethoden und -techniken zur Bewältigung der unterschiedlichen Anforderungen von Unternehmensanwendungen, die von der interaktiven Transaktionsprogrammierung bis zur Hintergrundverarbeitung von Daten und Kommunikation reichen.
Ausführungsmethoden
ABAP-Programme können je nach Art und Leistungsanforderung der Aufgaben auf unterschiedliche Weise ausgeführt werden, darunter als dialog- oder bildschirmbasierte Online-Ausführung oder als interaktive Ausführung, bei der der Benutzer das ABAP-Programm direkt über die SAP-GUI oder eine webbasierte Oberfläche ausführt; diese werden als Vordergrundaufgaben bezeichnet.
Die andere Ausführungsmethode betrifft Programme mit Hintergrundausführung, die für ressourcenintensive, lang laufende oder regelmäßig geplante Aufgaben verwendet werden, welche unabhängig und ohne Benutzerinteraktion ablaufen.
Modulpool-Programmierung
Die Modulpool-Programmierung in ABAP bezeichnet bestimmte Programmtypen, die nicht eigenständig ausführbar sind, sondern als Container für die Logik mehrerer Bildschirmdarstellungen dienen, die auch Dynpros genannt werden. Dabei kann es sich um Bildschirmmasken handeln, darunter visuelle Bildschirmmasken mit Eingabe- und Ausgabefeldern, Drucktasten, Tabellen usw. Ein zweiter Teil besteht aus Ablauflogiken, einschließlich Steuercode, die das Verhalten der Bildschirme bestimmen.
Eine Ablauflogik enthält zwei Hauptabschnitte:
- Im Process Before Output (BPO) werden Module aufgerufen, um die Daten vor der Anzeige auf Bildschirmen aufzubereiten.
- Der Process After Input (PAI) wird nach einer Benutzerinteraktion aufgerufen, zum Beispiel einem Tastendruck oder einer Dateneingabe.
Der Bildschirmprozessor ist Teil der ABAP-Laufzeit, der den Kontrollfluss übernimmt und Module aufruft, die aus ABAP-Methoden und Unterprogrammen bestehen.
Batch-Input-Verarbeitung
Diese Technik überträgt automatisch geschützte Daten innerhalb von SAP-Systemen und simuliert die Benutzerinteraktion über SAP-Standardtransaktionen. Sie verwendet eine Abfolge von Bildschirmaufrufen und Eingabefeldern mit der gleichen Anwendungslogik und Validierung wie die manuelle Dateneingabe, erfolgt jedoch automatisch und gewährleistet die Datenintegrität. Diese Technik wird in der Regel für regelmäßige Aktualisierungen, Datenmigration oder das Hochladen von Daten aus Legacy-Systemen verwendet.
Kommunikationsprogramme
ABAP unterstützt die Entwicklung von Programmen zur Kommunikation mit externen Systemen unter Verwendung von Standardprotokollen. Die moderne Kommunikationsintegration wird jedoch durch neue Technologien wie Webdienste oder OData erreicht.
Seit jeher unterstützt ABAP das Common Programming Interface for Communication (CPI-C), einen IBM-Standard zur Kommunikation zwischen Programmen in einer verteilten Umgebung. Andere Beispiele für Kommunikationsprogramme sind Business Application Programming Interfaces (BAPIs) und Remote Function Calls (RFCs).
Sequentielle Datensätze
Sequentielle Datensätze werden häufig für die Handhabung von flachen Dateien auf dem Dateisystem des Anwendungsservers verwendet, was ebenfalls von ABAP-Programmen unterstützt wird. Diese Programme verwenden spezifische Anweisungen für Dateioperationen, wie zum Beispiel das Lesen und Schreiben von Daten in und aus Text- oder CSV-Dateien, das Importieren externer Daten (beispielsweise tägliche Verkaufszahlen oder Mitarbeiterdatensätze) in das SAP-System zwecks Verarbeitung und das Exportieren von Daten in Form von Berichten oder das Protokollieren in Textdateien zu Debugging- oder Audit-Zwecken.
Moderne Schnittstellen bevorzugen strukturierte Datenformate wie JSON oder XML und direkte API-Aufrufe.
Sicherheit, Leistung und Wartung
ABAP bietet ein umfassendes Framework, um die Sicherheit, Performance und Wartung von ABAP-Anwendungen zu gewährleisten.
Sicherheit
Sicherheit ist ein wichtiger Aspekt bei der ABAP-Entwicklung, um sensible Daten und deren Integrität zu schützen. ABAP verwendet das SAP-Standardkonzept der rollenbasierten Autorisierung und Zugriffskontrolle.
Die Rollen enthalten Berechtigungsobjekte, die den Zugriff auf ABAP-Programme, die von ihnen verarbeiteten Daten und Transaktionen ermöglichen.
Berechtigungsobjekte definieren Berechtigungen wie das Erstellen, Ändern oder Anzeigen von Aktivitäten, bestimmte Organisationseinheiten wie Werkscode, Buchungskreis usw. Wenn ein Benutzer ein Programm ausführt, wird seine Berechtigung vom System anhand der Berechtigungsobjekte geprüft, um sicherzustellen, dass der Benutzer nur auf die Ressourcen und Funktionen zugreifen kann, die er zur Erfüllung seiner Aufgaben benötigt.
Leistung
Wenn es um große Datenmengen geht, ist die Leistungsoptimierung von ABAP-Anwendungen von entscheidender Bedeutung. Entwickler sind angehalten, bewährte Methoden zu befolgen, um die Leistung zu verbessern, darunter die Minimierung verschachtelter Schleifen und ineffizienter Datenverarbeitung. Zum Lesen, Schreiben und Verarbeiten interner Tabellen sollten sie optimierte Anweisungen verwenden. Eine effiziente Handhabung des Datenbankzugriffs erfolgt mit den von ABAP bereitgestellten Tools wie Open SQL, Code Pushdown für SAP HANA und AMDP sowie durch die Sicherstellung geeigneter Indizes für Datenbanktabellen zwecks Beschleunigung des Datenabrufs.
In ABAP Workbench bietet SAP eine robuste Suite von Tools zur Analyse und Optimierung der Programmleistung, einschließlich der ABAP Runtime Analysis, die Leistungsengpässe, Datenbankzugriffszeiten und Speicherverbrauch identifiziert.
Mit SQL Trace in ABAP Workbench können Datenbankaufrufe von ABAP-Programmen überwacht und ineffiziente Datenbankabfragen identifiziert werden. Darüber hinaus bietet die Workload Analysis einen Überblick über die Systemleistung, die Antwortzeiten von Transaktionen und die Ressourcenauslastung.
Versionierung und Wartung
ABAP bietet eine effektive Versionierung und Wartung, die sicherstellen, dass alle ABAP-Programme, Datenwörterbuch-Objekte und andere Entwicklungsobjekte zentral im ABAP-Repository innerhalb der SAP-Datenbank gespeichert werden. Dies vereinfacht die Verwaltung und gewährleistet die Einheitlichkeit zwischen verschiedenen SAP-Systemen.
ABAP Workbench bietet eine Versionskontrolle für alle Objekte im Repository. Beispielsweise wird bei jeder Änderung eines ABAP-Programms eine neue Version erstellt, sodass Entwickler verschiedene Versionen vergleichen, Änderungen nachverfolgen oder bei Bedarf zu einer früheren Version zurückkehren können. Der SAP-ABAP-Code beinhaltet das Change and Transport System (CTS), das Änderungen an Entwicklungsobjekten und Konfigurationen in Transportaufträgen aufzeichnet. Diese Anforderungen werden dann systematisch zwischen Entwicklungs-, Test- und Produktionsumgebungen transportiert.
Erweiterbarkeit
ABAP ermöglicht es Entwicklern, SAP-Standardanwendungen umfassend anzupassen und zu erweitern, ohne den ursprünglichen Quellcode zu verändern. Dieses Grundprinzip gewährleistet reibungslose Upgrades. Für vereinfachte Upgrades ist keine Änderungsstrategie erforderlich. Bei einer Änderung des ursprünglichen Codes wären Upgrades riskant und komplex. Benutzerdefinierte Änderungen müssen bei jeder neuen SAP-Veröffentlichen erneut vorgenommen werden und benutzerdefinierter Code kann auf neue Releases übertragen werden, da er vom Kerncode isoliert ist.
Ausgewählte Kurse und Zertifizierung
SAP und seine Partner bieten einen strukturierten Ansatz für verschiedene Lern- und Schulungspfade, Zertifizierungen und spezielle Kurse, der Unternehmen und Einzelpersonen durch alle Phasen der SAP-ABAP-Programmierung führt.
SAP-Lern- und Schulungspfade
Nachfolgend sind einige Grundkurse aufgeführt, die von der offiziellen SAP-Schulungswebsite für ABAP angeboten werden. Sie behandeln grundlegende bis fortgeschrittene Programmierverfahren, einschließlich objektorientierter Techniken, Leistungsoptimierung und ABAP-Workbench-Tools. Diese Kurse umfassen die grundlegende Syntax, interne Tabellen, Datentypen und Modularisierungstechniken.
ABAP Core
https://training.sap.com/trainingpath/Database+&+Technology-Development-ABAP+Core
Grundlagen der ABAP-Programmierung auf SAP BTP
https://learning.sap.com/learning-journeys/learn-the-basics-of-abap-programming-on-sap-btp
ABAP-Kernkompetenzen
https://learning.sap.com/learning-journeys/acquire-core-abap-skills
SAP-S/4HANA-Anwendungsprogrammierung
Der unten verlinkte SAP-Kurs vermittelt die Grundlagen von SAP S/4HANA und SAP Business Suite sowie grundlegende bis fortgeschrittene ABAP-Programmierung. Der Kurs für Fortgeschrittene deckt Themen wie Datenmodellierung im ABAP-Wörterbuch, ABAP Core Data Service, ABAP RESTful Application Programming, die auf benutzerdefiniertem Code basierende Migration von SAP ERP auf S/4HANA sowie die Datenmigration mit SAP S/4HANA Migration Cockpit ab.
Einstieg in die Anwendungsprogrammierung mit SAP S/4HANA
Der unten verlinkte Kurs beinhaltet die ersten Schritten der In-App-Extensibility in SAP S/4HANA, einschließlich der Entwicklung und Implementierung von Erweiterungen, der Personalisierung von SAP Fiori Launchpad, des Variantenmanagements, der Erstellung von SAP Fiori Runtime Authoring sowie der Erstellung von Datenquellenerweiterungen und benutzerdefinierten Feldern, benutzerdefinierter Logik sowie Elementen zur Transporterweiterung.
Erste Schritte mit der In-App-Erweiterung in SAP S/4HANA
Formulare erstellen
Über den Link unten können Sie mit der Erstellung und dem Druck von Formularen auf Grundlage von SAP Smart Forms und PDF-Dateien beginnen. Außerdem lernen Sie, wie Sie interaktive Formulare erstellen, einschließlich Formularschnittstelle, Kontext, Layout, Verwendung und Struktur, Integration, Vorlagen, Output-Management und Anpassung von Formularen.
Erste Schritte zur Erstellung von Formularen
Programmierung für SAP HANA
Dieser Kurs richtet sich an Entwickler, die lernen wollen, wie sie optimierte ABAP-Anwendungen für die In-Memory-Datenbank SAP HANA entwickeln können. Er ist in drei Stufen unterteilt:
| Stufe | Inhalt |
| Beginner | Der Kurs beinhaltet weit gefasste Themen wie Technologie, Architektur, Datenmodellierung, Datenmanagement und Anwendungsentwicklung. |
| Intermediate | Behandelt die analytische Verarbeitung, den Betrieb von Datenlagern, Überwachung, Sicherheit und Datenschutz mit SAP HANA, einschließlich der Migration auf SAP HANA. |
| Advanced | Umfasst die Modellierung von Berechnungsansichten, die grafische Modellierung, die SQL-basierte Modellierung und Core Data Services: ABAP-Transport von SAP-HANA-Objekten (HTC und HTA), Volltextsuche in ABAP, Eingabefelder für Type-Ahead-Suche und für den für SAP HANA optimierten SAP List Viewer (ALV). |
Programmier-Zertifizierungen
Neben der ABAP-Programmierung bietet SAP auch Zertifizierungen an, um Ihre Fähigkeiten und Kenntnisse in ABAP zu bestätigen. Diese Zertifizierungen sind weltweit anerkannt und belegen die Fähigkeiten von Entwicklern. Nachfolgend sind einige Beispiele für solche Zertifizierungen aufgeführt.
- SAP Certified Development Associate ist eine Einstiegszertifizierung von SAP.
- Zertifizierungen als SAP Certified Specialist
- SAP Certified Specialist – SAP BW/4HANA Delta
- SAP Certified Specialist – SAP S/4HANA Conversion und SAP System Upgrade
- SAP Certified Specialist – Implementation Consultant – SAP S/4HANA Cloud Private Edition
- SAP Certified Specialist – Project Manager – SAP Activate für Agile Implementation Management
Zudem gibt es weitere Zertifizierungen für bestimmte Technologien:
- SAP Certified Associate – SAP Fiori Application Developer
- SAP Certified Professional – Solution Architect – SAP BTP
Zusätzlich zu den oben genannten Lernpfaden und Zertifizierungen können Sie sich über den folgenden Link alle Zertifizierungen ansehen, die auf der offiziellen SAP-Lernplattform angeboten werden: