Die ADD
-Anweisung ist eine der grundlegenden arithmetischen Anweisungen in ABAP, die speziell für die Addition von
numerischen Werten dient.
Wichtiger Hinweis vorweg: Obwohl ADD
noch funktioniert, gilt die Anweisung in modernem ABAP als weitgehend
veraltet. Für Additionen wird heute fast ausschließlich der Additionsoperator (+
) innerhalb von Zuweisungen oder
anderen Ausdrücken verwendet (ergebnis = zahl1 + zahl2.
). Das ist kürzer, flexibler und besser lesbar. Das Verständnis
von ADD
ist aber nützlich, um älteren Code zu verstehen.
Syntax
Die relevantesten Formen der ADD
-Anweisung sind:
1. **Einen Wert zu einer Variablen addieren (Ergebnis überschreibt die Variable)
ADD <operand1> TO <variable>.
- Das Ergebnis von
<variable> + <operand1>
wird wieder in<variable>
gespeichert. <operand1>
kann eine Variable oder ein Literal sein.<variable>
muss eine Variable sein. Beide sollten numerisch sein.
2. Zwei Werte addieren und das Ergebnis in einer separaten Variablen speichern
ADD <operand1> TO <operand2> GIVING <ergebnisvariable>.
- Das Ergebnis von
<operand1> + <operand2>
wird in<ergebnisvariable>
gespeichert. <operand1>
und<operand2>
können Variablen oder Literale sein. Ihre Werte bleiben unverändert (sofern sie Variablen sind).<ergebnisvariable>
muss eine Variable sein. Alle sollten numerisch sein.
Es gibt noch die sehr selten verwendete und ebenfalls veraltete Anweisung
ADD-CORRESPONDING <struktur1> TO <struktur2>
, die namensgleiche, numerische Komponenten zweier Strukturen addiert.
Diese sollte vermieden werden.
Funktionsweise
- Die Operanden müssen numerische Datentypen sein (
I
,P
,F
) oder Typen, die implizit in numerische Typen konvertiert werden können (wieN
). - Die Berechnung folgt den ABAP-Regeln für numerische Genauigkeit (oft wird intern mit Typ
P
gerechnet). - Bei
ADD ... TO <variable>
wird der ursprüngliche Wert von<variable>
überschrieben. - Bei
ADD ... GIVING <ergebnisvariable>
bleiben die Quelloperanden unverändert.
Moderne Alternative (Bevorzugt!)
Die klare und empfohlene Methode für Additionen ist der +
-Operator:
" Entspricht: ADD wert1 TO variable.variable = variable + wert1.
" Oder kürzer, wenn möglich (ab ABAP 7.40 SP05):variable += wert1. " Addiert wert1 zu variable
" Entspricht: ADD wert1 TO wert2 GIVING ergebnis.ergebnisvariable = wert1 + wert2.
Beispiele
1. ADD ... TO ...
DATA zaehler TYPE i VALUE 5.WRITE: / 'Zähler vorher:', zaehler. " Ausgabe: 5
ADD 3 TO zaehler.WRITE: / 'Zähler nachher:', zaehler. " Ausgabe: 8
2. ADD ... GIVING ...
DATA preis1 TYPE p DECIMALS 2 VALUE '10.50'.DATA preis2 TYPE p DECIMALS 2 VALUE '20.00'.DATA gesamtpreis TYPE p DECIMALS 2.
ADD preis1 TO preis2 GIVING gesamtpreis.
WRITE: / 'Preis 1:', preis1. " Ausgabe: 10.50 (unverändert)WRITE: / 'Preis 2:', preis2. " Ausgabe: 20.00 (unverändert)WRITE: / 'Gesamt :', gesamtpreis. " Ausgabe: 30.50
3. Moderne Alternative mit +
DATA count TYPE i VALUE 100.DATA summe TYPE i.DATA summand1 TYPE i VALUE 50.DATA summand2 TYPE i VALUE 75.
count = count + 10. " count ist jetzt 110summe = summand1 + summand2. " summe ist jetzt 125
WRITE: / 'Neuer Count:', count.WRITE: / 'Neue Summe :', summe.
Zusammenfassend:
Die ADD
-Anweisung führt Additionen durch, ist aber in modernem ABAP veraltet. Verwende stattdessen den *
Operator +
* in Zuweisungen für klareren und zeitgemäßen Code. Das Wissen um ADD
hilft Dir aber beim Lesen und
Verstehen von älterem ABAP-Code.