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

ABAP im Wandel

246

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 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 - Modern ABAP

Kategorie - ABAP

In dieser kleinen Aufgabe schauen wir uns bestehenden klassischen ABAP Quellcode an und versuchen diesen nach Modern ABAP zu optimieren.

27.08.2024

ABAP Tipp - Performance Datenfilterung

Kategorie - ABAP

Welche Anweisung verwendest du in ABAP zur Filterung von internen Tabellen und ist diese performant? In diesem Artikel mehr dazu.

13.08.2024

ABAP in der Praxis - Typkonvertierung

Kategorie - ABAP

Wie würdest du diese Typkonvertierung in ABAP durchführen? Ein Beispiel aus der Praxis und ein Lösungsvorschlag.

16.07.2024

ABAP Tipp - RFC Fehlerbehandlung

Kategorie - ABAP

Wie behandelt man eigentlich Fehler, wenn man über eine Destination im Funktionsbaustein kommuniziert? Mehr dazu in unserem Tipp.

05.03.2024

ABAP Tipp - CLEAR right

Kategorie - ABAP

Richtig löschen? In diesem Artikel wollen wir uns einmal anschauen, wann es Sinn macht zu löschen und wie du effektiv vorgehen kannst.

12.05.2023