ABAP: Das ADD-Kommando einfach erklärt mit Beispielen

kategorie
Veröffentlicht
autor
Johannes

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 (wie N).
  • 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 110
summe = 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.