Ansicht
Dokumentation

ABAPASSIGN_MEM_AREA_DYNAMIC_ACCESS - ASSIGN MEM AREA DYNAMIC ACCESS

ABAPASSIGN_MEM_AREA_DYNAMIC_ACCESS - ASSIGN MEM AREA DYNAMIC ACCESS

rdisp/max_wprun_time - Maximum work process run time   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

ASSIGN, dynamic_access

Kurzreferenz



... ${ cref->(attr_name) $}
  $| ${ iref->(attr_name) $}
  $| ${ (clif_name)=>(attr_name) $}
  $| ${ (clif_name)=>attr $}
  $| ${ clif=>(attr_name) $} ...

Alternativen:

2. ... cref->(attr_name)

3. ... iref->(attr_name)

4. ... (clif_name)=>(attr_name)

5. ... (clif_name)=>attr

6. ... clif=>(attr_name)

Wirkung

Diese Alternativen der dynamischen Angabe des Speicherbereichs mem_area der Anweisung ASSIGN sind speziell für den dynamischen Zugriff auf Attribute von Klassen oder Interfaces (Dynamic Access) vorgesehen. Die gleiche Syntax wie bei Alternativen 1 und 2 ist auch für Komponenten von Strukturen möglich.

Bei einer Inline-Deklaration des Feldsymbols mit FIELD-SYMBOL(<fs>) erfolgt dessen Typisierung mit dem generischen Typ data.

Bei diesen Varianten setzt die Anweisung ASSIGN den Rückgabewert sy-subrc. Wenn die Zuweisung erfolgreich ist, wird sy-subrc auf 0, ansonsten auf 4 gesetzt. Bei nicht erfolgreicher Zuweisung behält das Feldsymbol den vorhergehenden Zustand. Die Auswertung des Prädikatausdrucks <fs> IS ASSIGNED ist also nicht ausreichend, sondern es muss sy-subrc überprüft werden.

Hinweis

Feldsymbole, denen Instanzattribute oder Teile von Instanzattributen zugewiesen sind, wirken auf das zugehörige Objekt speichererhaltend.

Alternative 2

... cref->(attr_name)


Wirkung

Diese Form ist für alle sichtbaren Attribute von Objekten möglich. cref kann eine beliebige Klassenreferenzvariable sein, die auf ein Objekt zeigt, welches das in einem zeichenartigen Feld attr_name angegebene Attribut enthält. Das Attribut wird erst im statischen Typ dann im dynamischen Typ von cref gesucht.

Der Attributname muss nicht in Großbuchstaben angegeben sein. Er kann Offset-/Längenangaben, Strukturkomponenten-, Objektkomponenten- und Klassenkomponenten-Selektoren enthalten, um Teile oder referenzierte Objekte des Attributs zuzuweisen.

Dynamische Zuweisung eines Attributs eines Objekts an ein Feldsymbol. Die Zuweisung erfolgt über eine Objektreferenzvariable vom statischen Typ der Wurzelklasse object, die auf jedes Objekt zeigen kann.

Alternative 3

... iref->(attr_name)


Wirkung

Diese Form ist für alle sichtbaren Attribute von Objekten möglich. iref kann eine beliebige Interfacereferenzvariable sein, die auf ein Objekt zeigt, welches das in einem zeichenartigen Feld attr_name angegebene Interfaceattribut enthält. Die Methode wird nur im statischen Typ von iref gesucht.

Der Attributname muss nicht in Großbuchstaben angegeben sein. Er kann Offset-/Längenangaben, Strukturkomponenten-, Objektkomponenten- und Klassenkomponenten-Selektoren enthalten, um Teile oder referenzierte Objekte des Attributs zuzuweisen.

Beispiel

Dynamische Zuweisung eines Attributs eines Objekts an ein Feldsymbol. Die Zuweisung erfolgt über eine Interfacereferenzvariable.

Alternative 4

... (clif_name)=>(attr_name)


Alternative 5

... (clif_name)=>attr


Wirkung

Diese Formen sind für alle sichtbaren statischen Attribute möglich. Es können sowohl Klasse bzw. Interface als auch Attribut dynamisch in zeichenartigen Feldern clif_name bzw. attr_name angegeben werden. Das Attribut attr kann aber auch direkt angegeben werden. Es wird erst die Klasse bzw. das Interface gesucht, dann das Attribut.

Der Inhalt von attr_name und clif_name muss nicht in Großbuchstaben vorliegen. attr_name kann Offset-/Längenangaben, Strukturkomponenten-, Objektkomponenten- und Klassenkomponenten-Selektoren enthalten, um Teile oder referenzierte Objekte des Attributs zuzuweisen. Hinter einem direkt angegebenen Attribut attr können hier keine Offset-/Längenangaben und kein Objektkomponenten-Selektor angegeben werden.

Hinweis

Wenn in clif_name über einen absoluten Typnamen eine Klasse eines anderen Programms angegeben wird, wird dieses je nach Programmtyp in eine neue Zusatzprogrammgruppe oder in die aktuelle Programmgruppe hinzugeladen, falls es noch nicht geladen war. Dabei wird gegebenenfalls der Programmkonstruktor ausgeführt.

Alternative 6

... clif=>(attr_name)


Wirkung

Diese Form ist für alle sichtbaren statischen Attribute möglich. Die Klasse bzw. das Interface wird direkt und das Attribut dynamisch in einem zeichenartigen Feld attr_name angegeben. Das Attribut wird in der angegebenen Klasse bzw. dem Interface gesucht.

Der Inhalt von attr_name muss nicht in Großbuchstaben vorliegen. attr_name kann Offset-/Längenangaben, Strukturkomponenten-, Objektkomponenten- und Klassenkomponenten-Selektoren enthalten, um Teile oder referenzierte Objekte des Attributs zuzuweisen.

Beispiel

Verschiedene dynamische Zuweisungen eine statischen Attributs einer Klasse an Feldsymbole.






CL_GUI_FRONTEND_SERVICES - Frontend Services   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7992 Date: 20240420 Time: 153643     sap01-206 ( 113 ms )