Ansicht
Dokumentation

ABENASSIGN_CALC_GUIDL - ASSIGN CALC GUIDL

ABENASSIGN_CALC_GUIDL - ASSIGN CALC GUIDL

Addresses (Business Address Services)   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Zuordnungen

Für explizite Zuweisungen, bei denen Der Wert einer Quelle einem Ziel zugewiesen wird, enthält ABAP den allgemeinen Zuweisungsoperator = und den speziellen Casting-Operator ?=. Anweisungen mit diesen Operatoren

lhs =$|?= rhs.

erlauben Zuweisungen von

  • Datenobjekten,
  • Rückgabewerten bzw. Resultaten von funktionalen Methoden, eingebauten Funktionen oder Konstruktorausdrücken, Tabellenausdrücken und
  • Ergebnissen von Rechenausdrücken (arithmetische Ausdrücke, Bit-Ausdrücke, Zeichenkettenausdrücken)

an Variablen, die auch inline deklariert werden können, und an schreibbare Ausdrücke.

Neben den Zuweisungsoperatoren gibt es aus historischen Gründen zwei inzwischen obsolete Anweisungen, die ebenfalls Zuweisungen durchführen:

  • Mit der Anweisung
MOVE source TO$|?TO destination.
weist eine Quelle source einem Ziel destination zu. Sie deckt einen Teil der mit den Zuweisungsoperatoren = und ?= möglichen Operationen ab.
  • Mit der Anweisung
COMPUTE lhs =$|?= rhs.
ist gleichbedeutend zu lhs =$|?= rhs. Das Schlüsselwort COMPUTE kann vor jede Zuweisung mit den Zuweisungsoperatoren = und ?= geschrieben werden, bei der die linke Seite keine Inline-Deklaration ist, hat aber keinerlei Wirkung.

Zuweisungen nur mit Zuweisungsoperatoren = und ?=

Verwenden Sie die Zuweisungsoperatoren statt der Anweisung MOVE. Lassen Sie das Schlüsselwort COMPUTE vor Zuweisungen immer weg.

Zuweisungen mit den Zuweisungsoperatoren = und ?= verwirklichen das allgemeingültigste Konzept. Die rechte Seite ist eine allgemeine Ausdrucksposition, die linke Seite ist außer bei Downcasts eine Deklarationsposition.

Die Anweisungen MOVE und COMPUTE haben folgende Nachteile:

  • Die Anweisung MOVE kann nicht allgemeingültig verwendet werden. Als Quelle sind nur Datenobjekte, funktionale Methoden und ganz bestimmte eingebaute Funktionen erlaubt, deren Argumente dann einzelne Datenobjekte sein müssen. Als Ziel sind nur Variablen, keine Inline-Deklarationen möglich. Zukünftige Erweiterungen an Operandenpositionen werden nicht auf MOVE ausgedehnt.
  • Das Schlüsselwort COMPUTE ist zum einen unnötig und zum anderen verwirrend. Wenn auf der rechten Seite ein arithmetischer Ausdruck oder ein anderer Rechenausdruck steht, hat das Wort COMPUTE zwar die richtige Bedeutung, ist aber redundant und überflüssig. Wenn auf der rechten Seite ein Datenobjekt, eine funktionale Methode, eine eingebaute Funktion oder eine Konstruktorausdruck steht, hat das Wort COMPUTE die falsche Bedeutung, da kein Ausdruck berechnet sondern ein Rückgabewert bzw. Resultat zugewiesen wird.

Die beiden Anweisungen MOVE und COMPUTE stammen aus Zeiten, in denen es nur Zuweisungen einzelner Datenobjekte und ausschließlich arithmetische Berechnungen gab. In einem modernen, ausdrucksorientierten ABAP-Programm, das alle Möglichkeiten für die rechte und linke Seite einer Zuweisung ausnutzt, haben beide Anweisungen keinen Platz mehr.

Hinweis

Der optionale Zusatz EXACT der Anweisungen MOVE und COMPUTE, der verlustfreie Zuweisungen und verlustfreie Berechnungen bewirkt, wird vollständig durch den Lossless-Operator EXACT ersetzt.

Folgender Quelltext zeigt eine einfache Zuweisung mit MOVE und die Zuweisung eines arithmetischen Ausdrucks hinter COMPUTE.

DATA text1 TYPE string.
DATA text2 TYPE string.
...
MOVE text1 TO text2.

DATA result TYPE decfloat34.
DATA number1 TYPE i.
DATA number2 TYPE i.
...
COMPUTE result = number1 * number2.

Folgender Quelltext zeigt das gleiche Beispiel wie obiges Beispiel ohne Angabe der Schlüsselwörter MOVE und COMPUTE, was Inline-Deklarationen auf der linken Seite ermöglicht.

DATA text1 TYPE string.
...
DATA(text2) = text1.

DATA number1 TYPE i.
DATA number2 TYPE i.
...
FINAL(result) = CONV decfloat34( number1 * number2 ).






ROGBILLS - Synchronize billing plans   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6020 Date: 20240523 Time: 175452     sap01-206 ( 97 ms )