Ansicht
Dokumentation

ABENCREATE_OBJECTS - CREATE OBJECTS

ABENCREATE_OBJECTS - CREATE OBJECTS

General Material Data   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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:

  • 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:

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 )