ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  Obsolete Sprachelemente →  Obsolete Verarbeitung interner Daten →  Obsolete Rechenanweisungen → 

ADD - THEN, UNTIL

Kurzreferenz

Obsolete Syntax

ADD { { dobj1 THEN dobj2 UNTIL dobj
      { {TO result} | {GIVING result [ACCORDING TO sel]} } }
    | { dobj FROM pos1 TO pos GIVING result } }
    [RANGE range].

Wirkung

Diese in Klassen verbotenen Varianten der Anweisung ADD addieren Folgen von Datenobjekten, die in gleichen Abständen voneinander im Speicher abgelegt sind.

In beiden Varianten kommt es zu einer unbehandelbaren Ausnahme, wenn auf Adressen zugegriffen wird, an denen keine passenden Datenobjekte abgelegt sind.

Alle Datenobjekte der Folge müssen innerhalb einer Struktur liegen. Wenn dies bei der Syntaxprüfung nicht statisch erkennbar ist, muss eine Struktur range mit dem Zusatz RANGE angegeben werden. Wenn die Datenobjekte der Folge bei Ausführung der Anweisung nicht Teil der angegebenen Struktur sind, kommt es zu einer unbehandelbaren Ausnahme.

Der Rechentyp der Addition wird üblich aus den beteiligten Operanden bestimmt.

Hinweis

Die Funktion dieser Varianten der Anweisung ADD hängt vom internen Aufbau des Arbeitsspeichers ab. Solche speichernahen Operationen sollen vermieden werden. Sie sind in Klassen verboten und können bei Bedarf durch die Anweisung ASSIGN mit dem Zusatz INCREMENT ersetzt werden.

Beispiel

Die auf dem Selektionsbild eingegebenen Komponenten der Struktur numbers werden addiert und die Summe wird der Variablen sum zugewiesen.

DATA: BEGIN OF numbers,
        one   TYPE p LENGTH 8 DECIMALS 0 VALUE 10,
        two   TYPE p LENGTH 8 DECIMALS 0 VALUE 20,
        three TYPE p LENGTH 8 DECIMALS 0 VALUE 30,
        four  TYPE p LENGTH 8 DECIMALS 0 VALUE 40,
        five  TYPE p LENGTH 8 DECIMALS 0 VALUE 50,
      END OF numbers,
      sum     TYPE i.

SELECT-OPTIONS position FOR sum.

ADD numbers-one THEN numbers-two
                UNTIL numbers-five
                ACCORDING TO position
                GIVING sum.

Ausnahmen

Behandelbare Ausnahmen

CX_SY_ARITHMETIC_OVERFLOW

CX_SY_CONVERSION_OVERFLOW

Unbehandelbare Ausnahmen