
ABAP im Wandel
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.
Inhaltsverzeichnis
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.