This is a test message to test the length of the message box.
Login
|
ABAP im Wandel
Erstellt von Software-Heroes

ABAP im Wandel

530

Die Programmiersprache ABAP ist bereits seit Jahren im Wandel und modernisiert sich in verschiedenen Konzepten. In diesem Artikel schauen wir uns das einmal im Detail an.

Werbung


Seit nun vielen Jahren ist ABAP im Wandel zu einer modernen Programmiersprache, weg von den Anfängen Richtung Cobol, hin zu einem modernen Design der Sprache und der Oberflächen.

 

Programmiersprache

Damals begann es mit ABAP OO, an dieser Stelle fragten sich bereits die ersten Entwickler, wieso man auf so modernen Kram eigentlich umsteigen sollte. Es war noch keine Pflicht und Reports funktionierten weiterhin mit Form Routinen, deshalb bestand keine Notwendigkeit umzusteigen, vor allem wenn die meisten Kollegen die Objektorientierung noch nicht verstanden. In einigen Unternehmen wurde sogar ABAP OO verboten, weil man fürchtete, dass die Systeme nicht mehr wartbar waren.

Dann führte SAP die Unit Tests ein, dass was in vielen Programmiersprachen bereits Standard war. Quellcode sollte plötzlich mit einer Abdeckung von Tests entwickelt werden, wobei nur sehr wenige Entwickler auf Unit Tests setzten, sondern lieber wie bisher manuelle Tests durchführte oder auf die Anpassung vertraute und ohne eigentlichen Test arbeitete.

 

Modern ABAP

Ab 7.40 begann dann die komplette Modernisierung der Sprache mit komplett neuen Befehlen und Objekten, wie Core Data Services, AMDP Klassen oder Business-Objekten mit BOPF. Ab diesem Release hat sich eine Menge in der Sprache getan, man konnte plötzlich zwei oder mehr Befehle für dieselbe Sache einsetzen, Coding wurde viel kürzer, man machte sich Gedanken über wartbaren Code (Thema: Refactoring, Unit Tests) und letztendlich gab es auch noch ein neues Programmiermodell mit dem ABAP RESTful Programing Model (kurz RAP).

 

Lernen und Vergessen

Jetzt sollte man sich vor allem mit dem Thema "Lernen" beschäftigen, man sollte sich mit mehr als nur ABAP auskennen. Es kommt das Web-Protokoll dazu, damit man OData Services und Fiori versteht. HTML und Javascript um Fiori Anwendungen debuggen zu können und mit Git, um Quellcode mit anderen zu tauschen oder an Open Source Projekten zu arbeiten.

Gleichzeitig sollte man das Vergessen auch im Hinterkopf behalten. Benötigst du wirklich noch die alten Statements, die bereits durch Neuere und vielleicht Performantere ersetzt wurden? Auch hier solltest du mal den alten ABAP Schatz ausmisten und auf die neuen Statements setzen. Weiterhin werden die nächsten Jahre immer weniger Techniken wie Datei- oder Dynproverarbeitung benötigt. Deshalb sollten Neueinsteiger in das Thema sich maximal oberflächlich solche Themen anschauen.

 

Beispiel

Hier mal ein kleines Beispiel eines Stück Quellcodes in der alten Schreibweise und nach dem Refactoring als neue Variante mit Modern ABAP:

DATA:
  lt_r_ccode   TYPE tt_r_ccode,
  ls_ccode     LIKE LINE OF lt_r_ccode,
  lt_companies TYPE tt_company,
  ls_company   LIKE LINE OF lt_companies,
  ld_count     TYPE i,
  ld_hcount    TYPE string,
  ld_text      TYPE string.

ls_ccode-sign = 'I'.
ls_ccode-option = 'EQ'.
ls_ccode-low = '0706'.
APPEND ls_ccode TO lt_r_ccode.

CALL METHOD select_some_data
  EXPORTING
    it_r_company_code = lt_r_ccode
    id_currency       = 'EUR'
  RECEIVING
    rt_result         = lt_companies.

DESCRIBE TABLE lt_companies LINES ld_count.
ld_hcount = ld_count.
CONCATENATE 'Anzahl der Zeilen:' ld_hcount INTO ld_text.
CALL METHOD out->write
  EXPORTING
    data = ld_text.

READ TABLE lt_companies INTO ls_company INDEX 1.
IF sy-subrc = 0.
  CALL METHOD out->write
    EXPORTING
      data = ls_company-butxt.
ENDIF.

 

Nach der Überarbeitung sieht der Quellcode entsprechend kürzer aus. Der große Deklarationsteil ist verschwunden und viele mehrzeilige Statements konnten auf eine Zeile reduziert werden:

DATA(lt_companies) = select_some_data(
    it_r_company_code = VALUE #( ( sign = 'I' option = 'EQ' low = '0706' ) )
    id_currency = 'EUR'
).

out->write( |Anzahl der Zeilen: { lines( lt_companies ) }| ).

TRY.
    out->write( lt_companies[ 1 ]-butxt ).
  CATCH cx_sy_itab_line_not_found.
ENDTRY.

 

Fazit

Die letzten Jahre waren hart für einige Entwickler, da es viel zu Lernen gab. Für andere wiederrum war es die schönste Zeit, die auch noch einige Jahre anhalten wird, da immer wieder Neuerungen herauskommen werden. Die Sprache ABAP ist im Wandel und wir finden diesen auch gut.


Enthaltene Themen:
TippABAPÄnderung
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Dienstag und Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP in der Praxis - News App verwenden

Kategorie - ABAP

In diesem Praxisbeispiel schauen wir uns an, wie wir die neue News App im ABAP Environment mit Informationen bestücken können. Dabei analysieren wir die aktuelle ABAP Auslieferung der Anwendung und des Services, um das korrekte Format zu finden.

31.03.2026

ABAP in der Praxis - Objekt Generator

Kategorie - ABAP

In diesem Beispiel schauen wir uns an, wie wir mit der XCO Bibliothek einen wiederverwendbaren Generator erstellen, um uns für unsere Tutorials etwas Arbeit zu sparen und automatisiert DDIC Objekte zu generieren.

09.01.2026

ABAP Tipp - Logging Performance

Kategorie - ABAP

Wie sieht es eigentlich mit der Performance des BAL Logs in der ABAP Cloud Welt aus? Schauen wir uns dazu drei Lösungen an und messen die Performance in verschiedenen Szenarien.

19.12.2025

ABAP in der Praxis - Fiori Daten fehlerhaft

Kategorie - ABAP

In diesem kleinen Praxisbeispiel schauen wir uns einen Fehlerfall in Fiori an. Hier werden die Daten im UI falsch angezeigt, obwohl alles sonst richtig zu sein scheint. Die Spur führt uns durch den RAP Stack in eine andere Richtung.

10.10.2025

ABAP Tipp - Handling von Funktionsbausteinen

Kategorie - ABAP

Wie gehst du eigentlich mit Funktionsbausteinen und der Fehlerbehandlung innerhalb von ABAP um? In diesem kleinen Tipp schauen wir uns die Behandlung auch im Rahmen von RFC an.

26.08.2025