Ansicht
Dokumentation

ABENCONSTRUCTOR_EXPRESSION_VALUE - CONSTRUCTOR EXPRESSION VALUE

ABENCONSTRUCTOR_EXPRESSION_VALUE - CONSTRUCTOR EXPRESSION VALUE

ABAP Short Reference   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

VALUE, Wertoperator

... VALUE type( ... ) ...

Wirkung

Ein Konstruktorausdruck mit dem Wertoperator VALUE erzeugt ein Resultat eines mit type angegebenen Datentyps. Für type kann angegeben werden:

  • Ein nicht-generischer Datentyp dtype.
  • Ausnahmen von dieser Regel sind:
  • Bei der Übergabe eines Initialwerts VALUE #( ) an einen generisch typisierten Formalparameter wird der Typ aus dem generischen Typ abgeleitet.

Der Operator

  • erzeugt Initialwerte für beliebige nicht-generische Datentypen
  • konstruiert den Inhalt von
  • Strukturierte Typen

  • Tabellentypen

  • steuert die Art des Resultats von Tabellenausdrücken und ermöglicht dabei die Angabe eines Standardwerts für nicht gefundene Zeilen

Der Inhalt des Resultats wird durch die in Klammern angegebenen Parameter bestimmt. Die Syntax der Parameterübergabe hängt bei der Konstruktion eines Wertes vom verwendeten Typ ab, wobei es für jeden möglichen Typ entsprechend spezialisierte Arten der Parameterübergabe gibt.

  • Parameterübergabe bei der Konstruktion von Werten:

  • Wenn als Parameter ein einzelner Tabellenausdruck angegeben ist, konstruiert VALUE keinen Wert sondern steuert die Art dessen Resultats.

Bei einer Zuweisung eines Konstruktorausdrucks mit VALUE an ein Datenobjekt wird direkt mit diesem gearbeitet. Es wird vollständig mit einem Initial- oder Startwert überschrieben, bevor es die in den Klammern angegebenen Werte zugewiesen bekommt.

Hinweise

  • Der Wertoperator VALUE kann verwendet werden, um den Inhalt vorhandenere komplexer Datenobjekte (Strukturen und interne Tabellen) zu konstruieren und geht damit über die Funktionalität des VALUE-Zusatzes hinaus.
  • Der Wertoperator VALUE verwendet zur Werterzeugung im Wesentlichen die gleiche Syntax wie der Instanziierungsoperator NEW.
  • Elementare Datentypen und Referenztypen können nicht explizit für die Konstruktion von Werten mit dem Operator VALUE angegeben werden, außer für die Erzeugung eines Initialwerts. Anders als beim Instanziierungsoperator NEW ist das entsprechende Ergebnis genauso durch direkte Zuweisungen erreichbar. Aus diesem Grund ist die Angabe unbenannter Argumente als Einzelwerte, die bei NEW möglich ist, auch nicht notwendig und daher nicht erlaubt. Dies betrifft nicht die Verwendung von VALUE zur Steuerung von Tabellenausdrücken, für die beliebige geeignete Datentypen angegeben werden können.
  • Da mit den Resultaten von VALUE zur Konstruktion von Werten außer bei der Erzeugung eines Initialwerts nicht arithmetisch gerechnet werden kann, können solche Konstruktorausdrücke nicht direkt an den Operandenpositionen arithmetischer Ausdrücke aufgeführt werden. Davon nicht betroffen sind Konstruktorausdrücke mit VALUE zur Steuerung von Tabellenausdrücken, mit denen bei passenden Ergebnissen auch gerechnet werden kann.
  • Die Lücke, dass mit VALUE keine elementaren Datenobjekte an Operandenpositionen konstruiert werden können, wird durch den Konvertierungsoperator CONV geschlossen.
  • Wenn ein Konstruktorausdruck mit VALUE nicht als Quelle einer Zuweisung an ein Datenobjekt verwendet wird, erzeugt der Wertoperator VALUE ein neues temporäres Datenobjekt, dessen Datentyp durch den angegebenen Typ und dessen Inhalt durch die übergebenen Parameter bestimmt wird. Dieses Datenobjekt wird als Operand einer Anweisung verwendet und nach Gebrauch wieder gelöscht. Das Löschen erfolgt bei Abschluss der aktuellen Anweisung bzw. bei der Auswertung eines relationalen Ausdrucks nach dem Feststellen des Wahrheitswerts.
  • Bei einer Zuweisung an ein Datenobjekt wird kein temporäres Datenobjekt erzeugt, sondern direkt mit der Zielvariable gearbeitet. Diese wird vor der Zuweisung der in den Klammern angegebenen Werte initialisiert bzw. vollständig überschrieben. Ihr ursprünglicher Wert steht aber noch in einem optionalen LET-Ausdruck zur Verfügung. Hierin unterscheidet sich VALUE vom Instanziierungsoperator NEW.

Beispiel

Konstruktion der Werte einer inline deklarierten Struktur vom Typ T100.






General Material Data   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7548 Date: 20240523 Time: 152224     sap01-206 ( 112 ms )