Ansicht
Dokumentation

ABAPDATA_OPTIONS - DATA OPTIONS

ABAPDATA_OPTIONS - DATA OPTIONS

General Material Data   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

DATA, data_options

Kurzreferenz



... $[ VALUE val$|${IS INITIAL$} $]
    $[ READ-ONLY $].


Zusätze:

1. ... VALUE val$|${IS INITIAL$}

2. ... READ-ONLY

Wirkung

Die beiden Zusätze VALUE und READ-ONLY sind spezifisch für Datenobjekte und unterscheiden die DATA- von der TYPES-Syntax.

Hinweis

Neben den Zusätzen VALUE und READ-ONLY erlaubt die Syntax auch noch den obsoleten Zusatz COMMON PART.

Zusatz 1

... VALUE val$|${IS INITIAL$}

Wirkung

Mit dem Zusatz VALUE kann bei allen Formen der Variablendeklaration ein Startwert val für den Inhalt der Variablen festgelegt werden, mit dem die Variable zum Zeitpunkt ihrer Erzeugung vor dem Zeitpunkt LOAD-OF-PROGRAM initialisiert wird. Im Deklarationsteil eines Interfaces ist der Zusatz VALUE bei der Anweisung DATA nicht erlaubt.

Der Startwert val kann entweder als Literal oder als bereits definierte Konstante angegeben werden. Bei einer Konstante wird aber nicht deren tatsächlicher Wert verwendet, sondern sie wirkt wie die Angabe des Literals, das bei ihrer Deklaration hinter VALUE angegeben ist. In der Regel wird nur überprüft, ob die Länge des angegebenen Werts zum Datentyp passt und es kommt bei Abweichungen zu einer Warnung von der Syntaxprüfung. Nur beim Zeitstempeltyp utclong muss ein Zeichenliteral angegeben werden, das eine gültige Darstellung für einen Zeitstempel enthält. Falls der Datentyp des Literals nicht zum Datentyp der Deklaration passt, wird er bei der Programmaktivierung während der Programmgenerierung in der Regel nach den Konvertierungsregeln für elementare Datentypen konvertiert. Wenn das Literal nicht in den Datentyp konvertierbar ist, kommt es zu keinem Syntaxfehler sondern zu einer Ausnahme während der Programmgenerierung.

Ohne den Zusatz VALUE oder bei der Angabe von IS INITIAL ist der Inhalt initial. Die Initialwerte sind abhängig vom Datentyp.

Die Initialwerte der elementaren Typen sind abhängig von den eingebauten ABAP-Typen. Bei initialen Strukturen sind die Komponenten initial, initiale Referenzvariablen enthalten die Null-Referenz, die auf kein Objekt zeigt, und initiale interne Tabellen enthalten keine Zeilen.

Der VALUE-Zusatz ist bei beliebigen Datentypen möglich, insbesondere auch bei den tiefen Typen (Strings, Referenztypen, Tabellentypen oder strukturierte Typen mit tiefen Komponenten inklusive Boxed Components). Dabei gilt aber die Einschränkung, dass nur bei den ABAP-Typen string und xstring ein Startwert val angegeben werden kann. Ansonsten ist nur IS INITIAL möglich. IS INITIAL ist auch der einzig mögliche Startwert für Strukturen mit nicht zeichenartigen und flachen Komponenten.

Startwerte typgerecht angeben

Hinweise

  • Ein Startwert sollte möglichst typgerecht angegeben werden. Insbesondere dürfen keine längeren Werte angegeben werden und bei bestimmten Datentypen wie d und t muss die Länge genau stimmen.
  • Bei der Angabe von Zahlen mit Nachkommastellen oder in der wissenschaftlichen Notation mit Mantisse und Exponenten als Startwert für Datenobjekte der Datentypen p oder f ist zu beachten, dass es für solche Zahlen keine Literale gibt. Stattdessen müssen Zeichenliterale mit entsprechendem Inhalt angegeben werden. Diese werden nach den Konvertierungsregeln für elementare Datentypen in den numerischen Datentyp konvertiert. Das Gleiche gilt für byteartige Datenobjekte.
  • Wenn das Datenobjekt zeichenartig ist, können für val auch die Aufzählungskonstanten val1, val2, ... der Wertemenge eines Aufzählungstyps enum angegeben werden. Die Konstante erhält dann den Bezeichner der Aufzählungskonstante als Wert.
  • Der Wertoperator VALUE kann verwendet werden, um den Inhalt komplexer Datenobjekte (Strukturen, interne Tabellen) zu konstruieren.

Datendeklaration mit Angabe des Initialwerts, wovon einer durch eine Konstante angegeben wird.

Beispiel

Das folgende Beispiel zeigt, dass bei Verwendung einer Konstante hinter VALUE das Literal ausgewertet wird, das hinter deren VALUE-Zusatz steht. Die Variable text1 erhält den vollständigen Inhalt des Literals, während der Variable text2 der Wert der Konstante zugewiesen wird, die nach der Konvertierungsregel von c nach n nur die Ziffern des Literals und führende Nullen enthält.

Zusatz 2

... READ-ONLY

Wirkung

Dieser Zusatz ist immer in der öffentlichen Sichtbarkeitsbereichklasse bzw. in einem Interface möglich. Der Zusatz bewirkt, dass ein durch DATA deklariertes Attribut zwar von außerhalb der Klasse lesbar, aber nur durch Methoden der Klasse oder ihrer Unterklassen änderbar ist. Der Zusatz hat keine Wirkung für die Freunde der Klasse.

Ein mit READ-ONLY definiertes Attribut einer Klasse kann außerhalb der Klasse, ihrer Freunde und Unterklassen nur an Lesepositionen von ABAP-Anweisungen verwendet werden.

Hinweise

  • Die Deklaration von Attributen mit dem Zusatz READ-ONLY verhindert nicht, dass Methoden der Klasse Referenzen auf diese Attribute in Form von Referenzvariablen oder Feldsymbolen nach außen geben können und die Attribute dadurch außerhalb der Klasse änderbar werden.
  • Der Zusatz READ-ONLY ist immer dann empfohlen, wenn Attribute eigentlich unsichtbar sein sollen, aus Performance-Gründen aber nicht für jeden Lesezugriff eine GET-Methode ausgeführt werden soll.

Verwendung des statischen Konstruktors als Factory-Methode einer Klasse mit privater Instanzerzeugung. Die Referenz auf das erzeugte Singleton-Objekte steht im READ-ONLY-Attribut clsref zur Verfügung.






RFUMSV00 - Advance Return for Tax on Sales/Purchases   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9475 Date: 20240425 Time: 142511     sap01-206 ( 143 ms )