ABAP Cloud - Relevante Objekte
Welche Objekte sind in der ABAP Entwicklung eigentlich noch relevant und welche kannst du so langsam in die Mottenkiste packen? Hier erfährst du mehr.
Inhaltsverzeichnis
In diesem Artikel beleuchten wir einmal die Theorie der vorhandenen Objekte und schauen, was in ABAP Cloud noch so relevant sein wird und was nicht mehr. Hierbei beleuchten wir die unterschiedlichen Objekte und ihre Verwendung und geben eine Prognose anhand der eigenen Meinung ab.
Einleitung
Mit ABAP Cloud werden "endlich" einige Objekte und Sprachkonstrukte nicht nur auf Obsolet gesetzt, sondern komplett verboten. Das macht den Lernumfang und die Möglichkeiten einfacher und gibt Neueinsteigern in die ABAP Welt den Vorteil, sich direkt auf die neuen Themen zu fokussieren. In der Community hätten sich das einige schon sicherlich eher gewünscht, da es Standard in der Welt der Programmiersprachen ist und die Rückwärtskompatibilität bis hin zum ältesten Code eher eine Besonderheit.
Grundsätzlich können wir aber einleiten, dass das nur für den kundeneigenen Code, sowie Partner zutrifft, da das aktuell nicht für den SAP Code gilt. Dieser wird im Großteil noch unter klassischem ABAP laufen und damit alles möglich sein. Wir beschränken uns daher hier nur auf unseren Quellcode und Objekte.
Objekte
In diesem Abschnitt schauen wir uns die verschiedenen Objekte und Technologien an.
ABAP OO
Bereits in einem älteren Artikel sind wir auf das Thema Nutzung der Objekte in der Software Architektur eingegangen. Der geschriebene Quellcode wird vor allem in Klassen und Interfaces zu finden sein, damit besteht die einfache Möglichkeit Unit Tests zu schreiben. Alle anderen Objekte fungieren als Hüllen, die die Klassen instanziieren und aufrufen. Mittlerweile gibt es mit den Test-Double-Frameworks auch Möglichkeiten, viele der anderen Objekte beim Test zu Mocken (Klassen, Funktionsbausteine, Tabellen, CDS Views, RAP Objekte, Berechtigungsobjekte, Events, etc.). Relevante Objekte in diesem Bereich wären:
- Klassen (CLAS)
- Interfaces (INTF)
SAP GUI
Mit ABAP Cloud ist die SAP GUI erst einmal Geschichte und damit verbundene Frameworks und Objekte. Das beliebteste Framework ist hier sicherlich der Report und das ALV, gefolgt von verschiedenen anderen GUI Technologien wie Bäume oder HTML Controls. Der Grundpfeiler der SAP GUI Entwicklung waren diese Objekte bisher. Veraltete Objekte in diesem Bereich wären daher:
- Report (REPO)
- Transaktion (TRAN)
- Dynpros
- GUI-Status
- Suchhilfen (SHLP)
- Set/Get Parameter (PARA)
Dictionary
Bereits in einem anderen Artikel sind wir auf die Verwendung von Tabellen und Core Data Services eingegangen. Im Umfeld des DDIC werden einige Objekte direkt obsolet, die du in ABAP Cloud nicht mehr benötigst, weil es im Bereich CDS Alternativen gibt.
- View (VIEW)
Schauen wir auf die Zukunft der Tabelle und die aktuellen Kapazitäten, werden diese in Zukunft (2025) durch Table Entities und Types abgelöst. In der Übergangszeit werden wir die aktuellen Artefakte noch nutzen können, doch sollten wir, wenn möglich, auf die neuen Typen umsteigen.
- Tabelle (TABL)
- Datenelement (DTEL)
- Domäne (DOMA)
- Strukturen (STRU)
Services
Services werden nicht mehr in der SEGW gebaut, wenn dies der Releasezustand zulässt. Mit Core Data Services, Service Definition und Service Binding stehen dir sehr gute Werkzeuge zur Verfügung. Damit kannst du alle Arten Services und Protokolle abdecken.
- Core Data Services (DDLS)
- Service Definition
- Service Binding
Funktionsbausteine
Die Verwendung von Funktionsbausteinen ist seit langer Zeit Standard, egal ob RFC Schnittstelle, als BAPI oder zur Verwendung als Objekt. In der Entwicklung können sie zu Nebeneffekten führen, die ein junger Entwickler vielleicht nicht richtig einschätzen kann, wenn es um die Pufferung von Informationen geht. In der aktuellen Entwicklung nutzten wir sie eher als Hülle zum Aufruf von Objekten und Kapseln die Logik testbar in Klassen. Werfen wir einen Blick auf Frameworks, die normalerweise einen Funktionsbaustein benötigten, wie Parallelisierung oder Hintergrundverarbeitung, dann bietet SAP mittlerweile Alternativen an. RFC Funktionsbausteine wird es noch eine Weile geben, da sie noch als beliebtes Kommunikationsmittel dienen, doch könnten sie in Zukunft weniger benötigt werden, zumindest bei der direkten Verwendung.
- Funktionsgruppe (FUGR)
- Funktionsbaustein (FUNC)
Erweiterungen
Wir erweitern wir ein System in ABAP Cloud? Weiterhin werden BADIs zur Verfügung stehen. Damit kannst du auch in Zukunft an angedachten Stellen Erweiterungen im System implementieren. Ältere Technologien wie User-Exits, Includes oder Implizite Enhancement-Points werden allerdings aus dem System verschwinden.
Sprachelemente
Schauen wir uns einmal die Sprachelemente an und aus welchem Bereich etwas verschwindet und was wir weiterhin verwenden werden.
Dateiverarbeitung
Die direkte Dateiverarbeitung ist in ABAP Cloud nicht mehr möglich, als Entwickler haben wir dort keinen Zugriff mehr auf das Dateisystem. Demnach fallen auch alle Statements aus diesem Bereich weg:
- OPEN DATASET
- TRANSFER
- READ DATASET
- CLOSE DATASET
- DELETE DATASET
SAP GUI
Wenn es um die Arbeit mit Dynpros in der SAP GUI geht, gibt es einige spezifische Befehle zum Aufruf von Dynpros. Ebenso werden die klassischen Selektionsbilder verschwinden, ebenso wie zahlreiche Befehle damit. Dieses kannst du dann auch so langsam vergessen, wenn du immer mehr Anwendungen mit RAP und Fiori baust.
- CALL TRANSACTION
- SELECTION-SCREEN
- PARARMETER
- SELECT-OPTION
- SKIP
- etc.
Berechtigungsprüfung
Die Prüfung der User-Berechtigungen bleibt weiterhin ein wichtiger Bestandteil der Verarbeitung. Bestimmte Funktionen in Anwendungen sollen nur bestimmten Usern angeboten werden? Dies kann grundsätzlich über Customizing erledigt werden, sauberer wäre allerdings über ein Berechtigungsobjekt. Entsprechende Statements werden noch benötigt:
- AUTHORITY-CHECK
Die meisten Berechtigungsprüfungen werden aber wahrscheinlich direkt im Access Control des Core Data Services durchgeführt.
Dynamische Aufrufe
Es ist zwar recht schwer vorzustellen, aber auch die Erzeugung und der Aufruf von Objekten benötigt noch einige ältere Statements, zumindest wenn es um die dynamische Verarbeitung geht. Nach unserer Meinung, setzen wir das Thema auf "Noch Relevant", vielleicht wird SAP hier noch eine modernere Lösung präsentieren.
- CREATE OBJECT
- CALL METHOD
Zusammenfassung
Hier noch einmal die Zusammenfassung der Objekte. Dabei unterscheiden wir zwischen "Relevant", "Noch Relevant", welche die nächste Zeit verschwinden können, und "Nicht Relevant", die du in ABAP Cloud nicht mehr einsetzen kannst.
Relevant | Noch Relevant | Nicht Relevant |
---|---|---|
Objekte | ||
Klasse (CLAS) | Tabelle (TABL) | Report (REPO) |
Interface (INTF) | Datenelement (DTEL) | Transaktion (TRAN) |
Core Data Services (DDLS) | Domäne (DOMA) | Suchhilfe (SHLP) |
Verhaltsdefinition (BDEF) | Funktionsgruppe (FUGR) | Set/Get Parameter (PARA) |
Application Log (APLO) | Funktionsbaustein (FUNC) | |
Paket (DEVC) | Struktur (STRU) | |
Nachrichtenklasse (MSAG) | ||
BADIs | ||
Service Definition | ||
Service Binding | ||
Sprachelemente | ||
AUTHORITY-CHECK | CREATE OBJECT | ... DATASET |
CALL METHOD | TRANSFER | |
CALL TRANSACTION | ||
SELECTION-SCREEN | ||
PARARMETER | ||
SELECT-OPTION | ||
SKIP |
Hinweis: Die Liste umfasst alle im Blog genannten Objekte und bezieht sich nicht auf die vollständigen Objekte des Systems, da hier durchaus mehr Objekte existieren.
Fazit
Unserer Meinung nach wurde das Aufräumen von ABAP endlich einmal Zeit. Zum einen können wir nun die neuen Themen angehen, zum anderen haben es Anfänger leichter, da sie nicht diesen Moloch an bestehenden Themen lernen müssen, bevor sie überhaupt richtig mit ABAP beginnen können.