Ansicht
Dokumentation

ABENEQUALS_ARITH_EXPR - EQUALS ARITH EXPR

ABENEQUALS_ARITH_EXPR - EQUALS ARITH EXPR

Addresses (Business Address Services)   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

=, arithmetischer Ausdruck

result = arith_exp.

Wirkung

Wenn auf der rechten Seite des Zuweisungsoperators = ein arithmetischer Ausdruck arith_exp aufgeführt ist, wird dieser mit seinem Rechentyp berechnet und das Ergebnis der linken Seite result zugewiesen.

Für result kann angegeben werden:

  • Eine Variable, die kompatibel zum numerischen Ergebnis des arithmetischer Ausdrucks ist, oder in deren Typ das Ergebnis konvertiert werden kann.
  • Eine Inline-Deklaration DATA(var) oder FINAL(var). Der Datentyp der deklarierten Variable var ist der statisch erkennbare Rechentyp, wobei generisch typisierte Feldsymbole und Formalparameter über einen dort beschriebenen Standardtyp Teil dieses Rechentyps sind. Beim Rechentyp p ist der Datentyp der deklarierten Variable immer p der Länge 8 ohne Nachkommastellen.

Wenn für result eine vorhandene Variable angegeben ist, geht deren Datentyp in die Bestimmung des Rechentyps mit ein. Wenn der Rechentyp nicht der Datentyp von result ist, wird dieses vor der Zuweisung vom Rechentyp in den Datentyp des Ergebnisfelds konvertiert.

Hinweise

  • Die Berücksichtigung des Ergebnisfelds bei der Bestimmung des Rechentyps ist eine Besonderheit von ABAP, der man sich immer bewusst bleiben sollte.
  • Der vom Datentyp des Ergebnisfelds abhängige Rechentyp ist ein wichtiger Unterschied zu einer Zuweisung von Datenobjekten, wo bei inkompatiblen Datenobjekten das Quellfeld immer in den Datentyp des Zielfelds konvertiert wird. Bei der Zuweisung arithmetischer Ausdrücke können auch dessen Operanden vor der Berechnung in den Datentyp des Ergebnisfelds konvertiert werden.
  • Dass ein Rechentyp p auf der rechten Seite einer Inline-Deklaration zum Datentyp p der Länge 8 ohne Nachkommastellen führt kann zu überraschenden Ergebnissen und auch zu Ausnahmen führen. Es empfiehlt sich, beim Rechentyp p entweder auf Inline-Deklarationen zu verzichten, oder den Datentyp durch Anwendung des Konvertierungsoperators CONV auf den arithmetischen Ausdruck zu bestimmen.

Die erste Zuweisung ist wegen des vorangestellten Vorzeichens eine Zuweisung eines arithmetischen Ausdrucks. Der Rechentyp bestimmt sich zu i und result erhält den Wert "731036", d.h. die Anzahl der Tage seit dem 01.01.0001. Die zweite Zuweisung ist dagegen gleichbedeutend mit einer Zuweisung von Datenobjekten und ergibt in result den Wert "20020704".

Beispiel

Das Beispiel demonstriert Inline-Deklarationen mit dem Rechentyp p. Während bei den Zuweisungen eines Datenobjekts dessen Datentyp übernommen wird, wird bei der Zuweisung eines arithmetischen Ausdrucks vom Rechentyp p der Datentyp p der Länge 8 ohne Nachkommastellen verwendet. Dies führt dazu, dass bei der ersten Zuweisung die Nachkommastellen verloren gehen und es bei der zweiten Zuweisung zu einem Überlauf und der entsprechenden Ausnahme kommt. Mit dem Konvertierungsoperator CONV können diese Probleme umgangen werden.






Fill RESBD Structure from EBP Component Structure   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 5323 Date: 20240523 Time: 172509     sap01-206 ( 95 ms )