Ansicht
Dokumentation
ABENCREATE_OBJECTS - CREATE OBJECTS
General Material Data Vendor Master (General Section)Diese Dokumentation steht unter dem Copyright der SAP AG.
Objekte und Werte erzeugen
Dieser Abschnitt beschreibt die Erzeugung von Datenobjekten und Instanzen von Klassen sowie die Konstruktion von Werten.
Objekte erzeugen
Die Erzeugung eines Datenobjekts oder Objekts ist gleichbedeutend mit der dynamischen Erzeugung einer Instanz eines Datentyps oder einer Klasse. Während Instanzen von Klassen nur wie in diesem Abschnitt beschrieben erzeugt werden können, werden Instanzen von Datentypen, d.h. Datenobjekte, die mit der Anweisung DATA oder verwandten Anweisungen wie zum Beispiel CONSTANTS deklariert sind, automatisch beim Laden ihres Kontexts in die interne Sitzung als benannte Datenobjekte erzeugt. Die dynamische Erzeugung von Datenobjekten ist nur dann notwendig, wenn der Datentyp erst während der Programmausführung bekannt ist oder wenn große Mengen an Speicher nur kurzzeitig belegt werden sollen.
Dynamisch erzeugte Objekte sind nur über Referenzvariablen adressierbar und werden durch den Garbage Collector aus der internen Sitzung gelöscht, wenn sie nicht mehr referenziert werden.
Für das Erzeugen von Objekten gibt es folgende Möglichkeiten:
- Instanziierungsoperator NEW für die Objekterzeugung an allgemeinen Ausdruckspositionen und funktionalen Operandenpositionen
- Zusatz NEW in der INTO-Klausel von zum impliziten Erzeugen von Datenobjekten als Zielbereiche.
Datenobjekte und Objekte werden standardmäßig in der internen Sitzung des aktuellen Programms erzeugt, und nur Programme der gleichen internen Sitzung können auf sie zugreifen. Folgendes kann jedoch ebenfalls erzeugt werden:
- Shared Objects im Shared Memory und
Hinweis
Eine obsolete Form der Objekterzeugung erfolgt mit der Anweisung ASSIGN LOCAL COPY.
Konstruktion von Werten
Die Werte der Attribute einer neu erzeugten Instanz einer Klassen können falls vorhanden mit dem Instanzkonstruktor der Klasse konstruiert werden. Die Eingabeparameter des Instanzkonstruktors können mit dem EXPORTING-Zusatz der Anweisung CREATE OBJECT oder durch Aktualparameter für den Instanziierungsoperator NEW versorgt werden.
Die Werte dynamisch erzeugter oder auch statisch deklarierter Datenobjekte können über folgende Konstruktorausdrücke konstruiert werden:
- Bei der dynamischen Erzeugung anonymer Datenobjekte mit dem Instanziierungsoperator NEW können Werte für alle Datentypen, insbesondere auch strukturierter und tabellarischer Typen, konstruiert und dem erzeugten Datenobjekt zugewiesen.
- Der Wertoperator VALUE kann verwendet werden, um den Inhalt komplexer Datenobjekte (Strukturen, interne Tabellen) zu konstruieren und geht damit über die Funktionalität des VALUE-Zusatzes hinaus.
Hinweis
Der Wertoperator VALUE kann wie jeder Konstruktorausdruck an allgemeinen Ausdruckspositionen und funktionalen Operandenpositionen eingesetzt werden, wozu insbesondere auch die rechte Seite einer Zuweisung an eine Inline-Deklaration gehört.
Beispiel
Inline-Deklarationen einer Referenzvariablen dref und einer strukturierten Variablen dobj. Mit dem Instanziierungsoperator NEW wird ein anonymes Datenobjekt erzeugt, das von dref referenziert wird. Mit dem Instanziierungsoperator NEW und dem Wertoperator VALUE werden über funktionale Methodenaufrufe Werte für die Komponenten der Strukturen konstruiert und diesen zugewiesen.
DATA(dref) = NEW struct( col1 = meth->get_col1( )
col2 = meth->get_col1( ) ).
DATA(dobj) = VALUE struct( col1 = meth->get_col1( )
col2 = meth->get_col1( ) ).
TXBHW - Original Tax Base Amount in Local Currency CPI1466 during Backup
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 6818 Date: 20240523 Time: 182816 sap01-206 ( 89 ms )