Neues ABAP (ab Release 7.40)

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe ABAP.

Mit dem Netweaver Relase 7.40 sind viele neue ABAP-Funktionen hinzugekommen und wurde vor allem für HANA optimiert. Version 7.40 wurde 2012 veröffentlicht.

HANA breitet sich aktuell schnell in der SAP-Welt aus.

Vorteile neue ABAP-Funktionen

  • Viele ABAP-Funkionen sind deutlich kompakter geworden und verdichten Befehle, die vorher mit relativ vielen Codingzeilen programmiert werden mussten.
  • Die Verdichtung der Befehle verbessert die Übersichtlichkeit der Funktionalität vom Code, sofern man die Syntax versteht und die Komplexität der verdichteten Befehle nicht übertriebt.
  • Durch die Verdichtung der Befehle kann man schneller debuggen, weil vorher mehrere Codingbefehle ausgeführt werden und dies oftmals in einem Schritt verdichtet werden kann mit der neuen Syntax.
  • Mit HANA ist die Datenbank deutlich schneller geworden. Was vorher aus Performancegründen mit Selects und oftmals auf dem Applikationsserver mit internen Tabellen programmiert wurde, kann heute mit HANA oftmals mit wenigen Befehlen der Datenbank zur Selektion übergeben werden und das kann gegenüber der alten Programmiertechnik sehr große Performancevorteile bringen.

Kritik an neuen ABAP-Funktionen

  • Viele ABAP-Funkionen sind deutlich kompakter geworden und verdichten Befehle, die vorher mit relativ vielen Codingzeilen programmiert werden mussten. Das kann jedoch auch ein Nachteil sein, wenn das Coding nicht wie erwartet funktioniert. Das Coding ist dann nur eingeschränkt zu debuggen. Vorher konnten die einzelnen Zeilen debuggt werden. Jetzt ist es oft nur ein komprimierter Befehl und dieser kann auch nur als 1 Schritt ausgeführt und debuggt werden.
  • Das verdichtete Coding kann viel Wissen voraussetzen, was hinter den Codingbefehlen an Funktionalität steckt. Es ist daher abzuwägen zwischen lesbarem Code und maximaler Verdichtung des Codes.

Abwägung und Handlungsempfehlung

  • Manche Befehle sind sehr elegant, vereinfachen die Programmierung und sind oftmals performanter als die klassische ABAP-Programmierung.
  • Jeder Entwickler sollte sich mit den neuen ABAP-Funktionen beschäftigen. Mindestens schon deshalb, weil Kollegen diese neuen ABAP-Funktionen nutzen und man dann mit ihrem fortgeschrittenen Coding zurechtkommen muss. Ich habe im Projekt die Probleme gespürt, wenn Kollegen eine Vielzahl dieser neuen Funktionen nutzen, dann nicht mehr im Projekt sind und andere Kollegen, die mit dieser neuen Syntax nicht vertraut sind, dieses Coding warten müssen.
  • Es gibt große Unterschiede wie ABAP-Entwickler diese neuen Funktionen nutzen. Manche verfolgen die neuen Möglichkeiten von neuen ABAP-Releases und versuchen diese in ihr eigenes Coding zu übernehmen. Andere ABAP-Entwickler sind der Meinung “Warum soll ich die neuen ABAP-Funktionen lernen, wenn ich mit den alten ABAP-Funktionen auch alles programmieren kann ..?!” Eine durchaus nachvollziehbare Meinung. Aber man stösst dann auf Schwierigkeiten, wenn ein ABAP-Entwickler die neuesten ABAP-Funktionen nutzt und dann das Projekt verlässt. Dann müssen andere SAP-Entwickler seine Programme betreuen. Es sollte daher mit der Verdichtung von Funktionen nicht übertrieben werden. Bei komplexen Programmbefehlen sollte der erfahrene Entwickler auch die technische Funktionalität ein wenig im Coding dokumentieren, um nachfolgenden Entwicklern oder Beratern das Leben zu erleichtern.
  • Es ist unrealistisch und nicht sinnvoll den aufgeschlossenen SAP-Entwicklern die Nutzung der neuen ABAP-Funktionen zu verbieten. Aber sie sollten darauf achten, dass das neue Coding noch lesbar bleibt und im Zweifel komplexe ABAP-Befehle auch ausführlich kommentieren im Coding. Es ist hier auch Aufgabe des Kunden gelegentlich das Coding der Entwickler zu überprüfen und dann auch entsprechend Druck auf die Entwickler zu machen ihr Coding leserlich zu schreiben und gut zu dokumentieren.
  • Jeder Entwickler sollte sich bemühen das neue Coding zu verstehen und es dann auch da einsetzen, wo es die Entwicklung beschleunigt und das Coding noch lesbar ist. Siehe hierzu https://www.abapforum.com/forum/viewtopic.php?f=2&t=20837.
  • Es ist nicht möglich diese neuen ABAP-Funktionen in seinem Gesamtumfang schnell zu lernen. Dafür sind es zu viele. Aber man kann die Funktionen nach und nach lernen, Dokumentationen und Bücher lesen, über neue ABAP-Befehle von Kollegen nachdenken, die neuen ABAP-Befehle debuggen, was sie bewirken und die wissenden Kollegen vor Ort fragen. Fast alle Externen sind nur eine begrenzte Zeit in einem Projekt und das sollte den internen Entwicklern bewußt sein, dass diese meist irgendwann die Programme der externen Entwickler warten müssen. Nicht immer gibt es gibt es eine Vorwarnzeit oder eine geordnete Übergabe, wenn SAP-Entwickler das Projekt verlassen.

Schlüsselbefehl Select

Funktionen

Inline-Deklarationen

Konstruktorausdruck VALUE: Interne Tabellen und Strukturen füllen im neuen ABAP

(Schlüsselwort REDUCE) Werte verdichten aus internen Tabellen im neuen ABAP

(Schlüsselwort FILTER) Tabellen filtern im neuen ABAP

Prädikatfunktionen

Prädikatfunktion LINE_EXISTS

Prädikatfunktion LINES()

Verkettungsfunktion CONCAT_LINES_OF()

Numerische Funktionen

Instanz Klasse erzeugen mit NEW

Der Schlüsselbefehl Read table im neuen ABAP mit Tabellenausdrücken

LOOP AT mit GROUP BY

Move-Corresponding und Corresponding

Konstrukturausdrücke

Konstruktorausdruck COND

Konstrukturausdruck SWITCH

DBA Cockpit

Beispielcoding

Web-Links