Wie wir bereits im Beitrag Warum ABAP-Software auch 2030 noch cool ist berichtet haben, ist ABAP noch lange nicht abgeschrieben und wird uns auch in Zukunft weiter begleiten. In Sachen Syntax hat sich in den letzten Jahren einiges getan, um dem geneigten Entwickler die Arbeit zu erleichtern, sich moderneren Programmiersprachen weiter anzunähern und auch für viele weitere Jahre gerüstet zu sein.

Für den langjährigen ABAP-Profi mag die ein oder andere Anweisung auf den ersten Blick merkwürdig erscheinen, dennoch ist es von Vorteil, sich mit den Neuerungen auseinanderzusetzen. Sei es, um den eigenen Programmier-Alltag zu erleichtern oder im Rahmen eines Code-Reviews zu verstehen, was der Junior-Entwickler da schon wieder programmiert hat, was der „alte Hase“ nicht kennt.

Was kam eigentlich neu hinzu?

Hier ein kurzer Überblick über die wichtigsten Features der vergangenen Jahre:

  • ABAP RESTful Application Programming Model (RAP)
    Ein zentrales Framework für die Entwicklung cloudbasierter Anwendungen in der SAP-Umgebung. Mit RAP können Entwickler konsistente und skalierbare Lösungen für die SAP Business Technology Platform (SAP BTP) entwickeln. Es integriert sich nahtlos mit Fiori und bietet Werkzeuge zur Erstellung sowohl von OData-Services für die externe Kommunikation als auch von Geschäftslogik und Datenmodell innerhalb von S/4HANA.

  • Integrierte SQL-Enhancements
    Erweiterte SQL-Funktionalitäten, die komplexe Abfragen vereinfachen und ihre Performance steigern. Common Table Expressions (CTEs) erlauben bspw. die Definition temporärer Resultsets innerhalb von SQL-Abfragen, was die Lesbarkeit und Wartbarkeit von SQL-Abfragen erhöht.

  • Verbesserte Inline-Deklarationen
    Inline-Deklarationen erhöhen die Lesbarkeit von ABAP-Codes, indem sie es ermöglichen, Variablen direkt bei ihrer Verwendung zu deklarieren.

  • Typinferenz
    ABAP hat eine verbesserte Typinferenz, was bedeutet, dass der Compiler den Datentyp einer Variable automatisch bestimmen kann, basierend auf dem ihr zugewiesenen Wert. Dies reduziert die Notwendigkeit, Datentypen explizit zu deklarieren, und vereinfacht den Code.

  • CDS Views (Core Data Services)
    CDS Views bieten eine leistungsstarke Möglichkeit zur Modellierung und Abfrage von Daten. Sie ermöglichen es Entwicklern, Views mit erweiterten logischen Funktionen, Joins und Aggregationen auf Datenbankebene zu erstellen, wodurch die Performance gesteigert und die Entwicklung vereinfacht wird.

  • Annotations
    ABAP unterstützt nun umfangreiche Annotationen, um Metadaten zu beschreiben, die von Entwicklungs- und Laufzeitumgebungen genutzt werden. Diese sind besonders nützlich im Zusammenhang mit Fiori und der Entwicklung von RESTful Services.

Beispiele gefällig?

In diesem Abschnitt möchten wir einmal kurz in Form von einfachen Beispielen ein paar der Anweisungen vorstellen:

Inline-Deklarationen und Typinferez

Beispiel #1:
“ Vorher
DATA: ls_row LIKE LINE OF lt_table,
     lv_sum TYPE i.
lv_sum = 0.
LOOP AT lt_table INTO ls_row.
  lv_sum = lv_sum + ls_row-value.
ENDLOOP.
 
“ Nachher
DATA(lv_sum) = 0.
LOOP AT lt_table INTO DATA(ls_row).
  lv_sum += ls_row-value.
ENDLOOP.

 Beispiel #2:
“ Vorher
 DATA: lv_lines TYPE i.
 lv_lines = LINES(lt_table).
 
 “ Nachher
 DATA(lv_lines) = LINES(lt_table).

SQL-Enhancements mit Common Table Expressions (CTEs)

WITH sales_data AS (
  SELECT FROM sales
    FIELDS product_id, SUM(amount) AS total_sales
    GROUP BY product_id
)
SELECT FROM sales_data
  FIELDS product_id, total_sales
  INTO TABLE @DATA(lt_sales_summary)
  WHERE total_sales > 1000.

Das ist natürlich bei Weitem nicht alles und wir könnten hier noch seitenweise Beispiele liefern. Wir möchten hiermit nur das Bewusstsein schaffen, dass es viel neues zu entdecken gibt und es Vorteile bringen kann sich mit diesem Thema auseinander zu setzen.

Fazit: Die größten Meister sind diejenigen, die nie aufhören Schüler zu sein

Auch wenn ABAP schon so viele Jahre existiert, hat es noch lange nicht aufgehört sich weiterzuentwickeln und wir können alle davon profitieren. Wir sind gespannt, was alles noch kommen wird und freuen uns, immer etwas dazulernen zu dürfen.