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
Pgerechnet). - 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: 82. 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.503. 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.