Zehn Empfehlungen für besseres ABAP
ABAP steht für „Advanced Business Application Programming“ (ursprünglich „Allgemeiner Berichts-Aufbereitungs-Prozessor“) und ist die firmeneigene Programmiersprache von SAP. ABAP wurde Ende der 80er Jahre entwickelt, und 35 Jahre sowie Millionen von Codezeilen später ist es immer noch aktuell! Wir haben 10 Empfehlungen zusammengestellt, falls Sie mit der Entwicklung in ABAP beginnen (oder dies bereits tun):
1. Erstellen Sie Ihre eigenen Standards
Diese Empfehlung gilt bereits, bevor Sie die ersten Zeilen Code schreiben: Besprechen und legen Sie die Mindeststandards für Ihren Entwicklungsprozess gleich zu Beginn fest, denn später wird es schwierig sein, diese noch zu ändern. Dazu gehören:
- Paketstruktur für Hauptpakete
- Namenskonventionen für Transporte
- Namenskonventionen für alle Entwicklungsobjekte und Sprachelemente
2. Definieren Sie Ihre eigene Utility-Ebene
Wenn verschiedene ABAP-Projekte parallel laufen, werden früher oder später alle ihre eigene Version bestimmter zentraler Hilfsprogramme implementieren. Wir empfehlen, eine Hilfsprogramm-Schicht zu erstellen, die wiederverwendbare Dienste einschließlich klarer Implementierungsanweisungen für Folgendes bereitstellt:
- Ausnahmebehandlung
- Protokollierung und Nachrichtenverarbeitung
- Dateizugriff auf dem Anwendungsserver
Es ist außerdem wichtig, klare Zuständigkeiten für die Wartung dieser Anlagen festzulegen.
3. SAP-Frameworks und SAP-Standards wiederverwenden
Denken Sie daran: Jede S/4HANA-Installation umfasst eine ABAP-Codebasis mit mehreren Millionen Zeilen. Daher ist es nicht verwunderlich, dass wir bei vielen Entwicklungsaufgaben auf die im Standard enthaltenen Lösungen zurückgreifen können. Wir empfehlen Ihnen, diese Standardfunktionen so weit wie möglich zu nutzen und das Rad nicht neu zu erfinden.
Dies gilt insbesondere für Konzepte und Rahmenbedingungen zur Absicherung Ihrer kundenspezifischen Anwendungen und Erweiterungen. SAP stellt Lösungen und Leitfäden zur Verfügung, die Ihnen zeigen, wie Sie beispielsweise die Benutzerverwaltung und Berechtigungsprüfungen, die Eingabevalidierung sowie die Ausgabeverschlüsselung oder -verschleierung selbst durchführen können.
Stellen Sie sicher, dass Ihr benutzerdefinierter Code diesen Richtlinien und Best Practices entspricht.
4. Algorithmus-Entwurfsmuster anwenden
Insbesondere bei der klassischen ABAP-Programmierung auf Basis des SAP GUI ist das Risiko sehr hoch, dass funktionale Aspekte einer kundenspezifischen Anwendung nicht gekapselt werden, z. B. durch fehlende Trennung von Datenbankzugriff, Geschäftslogik und Benutzerinteraktion auf dem Bildschirm. Das kann dazu führen, dass man am Ende eines dieser monolithischen Monster mit Tausenden von Zeilen Spaghetti-Code hat, das schwer zu warten und – was noch schlimmer ist – nahezu unmöglich wiederzuverwenden ist.
Diese Probleme lassen sich durch die Anwendung von Software-Entwurfsmustern lösen. Das derzeit bekannteste Muster für die ABAP-Entwicklung ist das MVC-Muster (Model-View-Controller), das Ihnen dabei hilft, die interne Darstellung und Logik von der Darstellung der Daten und der Interaktion mit dem Benutzer zu trennen. WebDynpro für ABAP ist ein Framework, das diesem Ansatz folgt, aber es ist auch möglich, MVC in klassischen Bildschirmen (Dynpros) zu implementieren.
5. Barcode-Scannen
Machen Sie die statische Quellcodeanalyse zu einem festen Bestandteil Ihres Entwicklungsprozesses, insbesondere wenn Sie mit der Arbeit an neuen Anwendungen beginnen. Sie hilft Ihnen dabei, die Qualität Ihres eigenen Codes zu überprüfen, und kann (zumindest Teile) Ihrer Entwicklungsrichtlinien effizient kontrollieren.
Wir empfehlen Ihnen außerdem, das Code-Scanning in Ihren Bereitstellungsprozess zu integrieren, unabhängig davon, ob Sie Ihren ABAP-Code mit dem nativen Transport Management (TMS), SAP Solution Manager ChaRM oder anderen Lösungen von Drittanbietern transportieren. Denken Sie daran: Jedes Code-Problem, das Sie beheben, bevor es in die Produktion gelangt, spart Ihnen letztendlich Geld.
6. Setzen Sie Peer-Reviews als Teil Ihrer Qualitätssicherung ein
Nachdem Sie Code-Scans und Selbstprüfungen durch die Entwickler anhand der festgelegten Richtlinien durchgeführt haben, empfehlen wir, für jeden neuen Codeabschnitt ein teaminternes Peer-Review durchzuführen (wenn Sie in einem agilen Entwicklungsprozess arbeiten, sollten Sie darüber nachdenken, dies in Ihre „Definition of Done“ aufzunehmen). Abgesehen davon, dass Sie möglicherweise Fehler finden, die bei der statischen Codeanalyse nicht erkennbar sind, wie z. B. strukturelle Probleme (die in der Regel schwerwiegender sind), bieten Peer Reviews weitere Vorteile wie den automatischen Wissenstransfer zwischen den Kollegen, die Verbesserung der Analysefähigkeiten des Prüfers und eine allgemeine Verbesserung der Fähigkeiten des Programmierers.
7. Eclipse / ABAP-Entwicklungswerkzeuge verwenden
Diese Empfehlung mag selbstverständlich klingen, doch wir beobachten immer noch, dass viele ABAP-Entwickler ihren ABAP-Code im guten alten ABAP-Editor (SE80) schreiben. Wir empfehlen Ihnen, so bald wie möglich auf Eclipse und die ABAP Development Tools (ADT) umzusteigen. Einer der Gründe dafür ist, dass immer mehr ABAP-Repository-Objekte nicht mehr im SAP GUI bearbeitet werden können. Außerdem erfordern neue Architekturkonzepte wie die ABAP Cloud Platform die Verwendung von Eclipse.
8. Erfahren Sie mehr über weitere grundlegende Tools
Mit SAP NetWeaver steht uns bereits eine riesige Auswahl an Service- und Hilfsfunktionen zur Verfügung. Insbesondere im Bereich der Ablaufverfolgung Ihrer kundeneigenen Anwendungen gibt es Werkzeuge, die sich früher oder später für alle ABAP-Entwickler als nützlich erweisen werden.
- Leistungsoptimierung: ABAP-Laufzeitanalyse (Transaktion SAT) und DB-Traces (Transaktion ST05)
- Berechtigungsanalyse: Systemtrace für die Berechtigungsanalyse (Transaktion STAUTHTRACE) und das Benutzerinformationssystem (Transaktion SUIM)
9. ABAP NE ABAP
Die Übernahme von benutzerdefiniertem Code, wie in der SAP-Vereinfachungsliste 3) beschrieben, könnte für viele SAP-Anwender einen hohen Aufwand bedeuten. Auch wenn Sie diese Änderungen außer Acht lassen, können Sie weiterhin benutzerdefinierten ABAP-Code im gleichen Stil und mit derselben Syntax wie in den 90er Jahren schreiben.
Ab NetWeaver Release 7.40 SP8 wurde die Programmiersprache ABAP jedoch um eine Reihe neuer Anweisungen und Operatoren erweitert. Um nur einige der besonders nützlichen Funktionen zu nennen:
- Operatoren wie CORRESPONDING und CONV können dabei helfen, Daten zwischen Variablen zu übertragen und gleichzeitig die Deklaration von Hilfsvariablen zu vermeiden
- Komplexe logische Konstrukte lassen sich mit SWITCH und COND vereinfachen
- String-Vorlagen erleichtern die Arbeit mit textbasierten Variablen erheblich
- Und natürlich tragen Inline-Deklarationen von Variablen und Feldsymbolen dazu bei, die Erstellung des Quellcodes zu beschleunigen.
Sobald Ihr „Basis“ diese Funktionen bietet, empfehlen wir Ihnen, sie zu nutzen – dies trägt zu einem eleganteren, schlankeren und übersichtlicheren Code bei.
10. Lerne immer weiter
„ABAP ist tot!“ Das haben wir schon oft gehört, und doch … doch es gibt es immer noch. Ganz im Gegenteil, es scheint lebendiger denn je zu sein. Unter den vielen aktuellen Themen möchten wir folgende hervorheben
- Core Data Services (CDS) als zentrales Werkzeug für die Datenmodellierung
- Platform ABAP Cloud Platform SAPs Platform a Service“-Angebot
- Restful ABAP Programming (RAP) als SAPs bevorzugte Architektur für die Implementierung von Anwendungen sowohl auf der SAP Cloud Platform in SAP-On-Premise-Installationen.
Da diese bereits verfügbar sind und die Roadmap von SAP darauf hindeutet, dass noch mehr kommen wird, sollten selbst erfahrene ABAP-Entwickler nie aufhören zu lernen.
