ABAP Obsolet - Zuweisung und Berechnung
Wie funktioniert das eigentlich mit den Zuweisungen und der Berechnung in ABAP? Hier erfährst du die aktuellen Sprachkonstrukte und was du vermeiden solltest.
Inhaltsverzeichnis
In unserer Serie der obsoleten Statements beschäftigen wir uns heute mit dem Thema Zuweisung und Berechnung und zeigen dir dabei ein paar neue Konstrukte die mit den aktuellen Releases ausgeliefert werden. Wichtig ist das Thema obsolete Statements vor allem in der Cloud, da unter Steampunk einige Dinge anders funktionieren.
Zuweisungen
Eine Zuweisung, bei der Quell- und Zieltyp unterschiedlich sind, wurden füher mit einem MOVE durchgeführt. Damit wusste das System, dass es auf den Zieltyp konvertieren sollte, solange dies möglich war. Doch dieser Beefehl wurde schon lange nicht mehr benötigt, eine einfache Zuweisung reicht dafür aus. Deshalb ist das Statement mittlerweile auch komplett obsolet und wird nicht mehr benötigt.
DATA:
ld_number TYPE n LENGTH 10 VALUE 6513,
ld_integer TYPE i.
" Old style
MOVE ld_number TO ld_integer.
" New style
ld_integer = ld_number.
Der Befehl COMPUTE führt zu einem ähnlichen Ergebnis und kann genau so weggelassen werden. Dieser Befehl wird noch seltener verwendet als MOVE.
" Old style
COMPUTE ld_number = ld_integer.
" New style
ld_integer = ld_number.
Für Zuweisungen kann man sich deshalb merken, so wie in anderen Programmiersprachen, einfach die Zuweisung machen. Es wird automatisch versucht vom Quell- auf den Zieltypen zu konvertieren, wenn dies möglich ist.
Berechnungen
Auch wenn die Befehle zur Berechnung schon etwas stark angestaubt sind und eigentlich noch von Cobol stammen, sind sie in aktuellem ABAP Coding noch verfügbar. Weiterhin kann man sie in älterem Code manchmal finden. Diese Form der Berechnung solltest du aber nicht mehr verwenden. Hier verwendest du eher den allgemein gültigen Stil, mit zwei Variablen zu rechnen.
" Old style
ADD 1 TO ld_number.
SUBTRACT 1 FROM ld_number.
MULTIPLY ld_number BY 2.
DIVIDE ld_number BY 4.
" New style
ld_number = ld_number + 1.
ld_number = ld_number - 1.
ld_number = ld_number * 2.
ld_number = ld_number / 4.
Mit dem letzten großen HANA Release 1909 (letztes Jahr), funktionieren nun auch die typischen Konstrukte aus anderen Programmiersprachen. Dies verkürzt die Tipparbeit vor allem bei längeren Variablennamen und sorgt für mehr Übersichtlichkeit. Doch vorsicht, wenn ihr an abwärtskompatiblem Code arbeitet! Nicht das ihr dort in Probleme mit älteren Versionen lauft.
" New style Release > 7.54 or HANA 1909
ld_number += 1.
ld_number -= 1.
ld_number *= 2.
ld_number /= 4.
Fazit
ABAP rückt damit immer weiter weg von seiner eigentlichen Basis Cobol und öffnet sich mehr den allgemeinen Programmiersprachen wie Java. Für viele jüngere Entwickler geht es genau in die richtige Richtung und poliert damit das angestaubte Image etwas auf.
Quelle:
SAP Blog