Ansicht
Dokumentation

ABAPASSIGN_LOCAL_COPY - ASSIGN LOCAL COPY

ABAPASSIGN_LOCAL_COPY - ASSIGN LOCAL COPY

Fill RESBD Structure from EBP Component Structure   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

ASSIGN LOCAL COPY

Kurzreferenz



ASSIGN LOCAL COPY
  OF ${ ${$[INITIAL$] mem_area$}
     $| ${INITIAL LINE OF ${itab$|(itab_name)$}$}
     $| ${MAIN TABLE FIELD (name)$} $}
  TO <fs> casting_spec.

Zusätze:

1. ... mem_area

2. ... MAIN TABLE FIELD (name)

3. ... casting_spec

Wirkung

Obsolete Erzeugung eines lokalen Datenobjekts. Diese Variante der Anweisung ASSIGN ist nur in Unterprogrammen und Funktionsbausteinen möglich. Das Feldsymbol <fs> muss lokal in der Prozedur deklariert sein.

Die Anweisung ASSIGN LOCAL COPY weist wie die normale Anweisung ASSIGN dem Feldsymbol <fs> einen Speicherbereich mem_area zu. Im Gegensatz zur normalen ASSIGN-Anweisung referenziert das Feldsymbol nach erfolgreicher Zuweisung aber nicht den in mem_area spezifizierten Speicherbereich. Stattdessen wird im lokalen Datenbereich der Prozedur ein anonymes Datenobjekt erzeugt. Nach erfolgreicher Ausführung der Anweisung zeigt das Feldsymbol auf das neue Datenobjekt. Das neue Datenobjekt wird wie folgt behandelt:

  • Die Größe des Speicherbereichs des neuen Datenobjekts richtet sich entweder nach den Angaben in mem_area oder bei der Angabe von LINE OF nach dem Zeilentyp einer internen Tabelle. Die interne Tabelle kann direkt als itab oder als Inhalt eines flachen zeichenartigen Feldes itab_name angegeben werden.
  • Der Datentyp, mit dem das neu erzeugte Datenobjekt behandelt wird, richtet sich wie beim normalen ASSIGN nach den Angaben in casting_spec.
  • Der initiale Inhalt des neuen Datenobjekts wird bei Angabe von mem_area ohne den Zusatz INITIAL aus dem in mem_area angegebenen Speicherbereich kopiert. Ansonsten ist er typgerecht initialisiert.

Die Einschränkung des Speicherbereichs range_spec, die in der normalen ASSIGN-Anweisung implizit und explizit erfolgen kann, erfolgt ausschließlich implizit nach den gleichen Regeln wie beim normalen ASSIGN.

Hinweis

Die Erzeugung eines lokalen Datenobjekts mit der Anweisung ASSIGN LOCAL COPY wird von der Anweisung CREATE DATA mit nachfolgender Dereferenzierung in der normalen Anweisung ASSIGN abgelöst.

Zusatz 1

... mem_area

Syntax von mem_area

... ${ dobj$[+off$]$[(len)$]
    $| (name)
    $| oref->(attr_name)
    $| ${class$|(class_name)$}=>${attr$|(attr_name)$}
    $| dref->* $} ...


Wirkung

Die Angaben in mem_area sind eine Untermenge der Angaben beim normalen ASSIGN und haben die gleiche Funktion mit folgenden Einschränkungen:

  • Falls der Zusatz INITIAL vor mem_area verwendet wird, muss das Datenobjekt name zeichenartig und flach sein.
  • Falls der Zusatz INITIAL vor mem_area verwendet wird, darf die Datenreferenz dref bei Verwendung des Dereferenzierungsoperators ->* nicht generisch typisiert sein.

Zusatz 2

... MAIN TABLE FIELD (name)

Dieser Zusatz ist nur zum internen Gebrauch bestimmt.
Er darf nicht in Anwendungsprogrammen verwendet werden.


Wirkung

Dieser Zusatz ist eine spezielle Form der Angabe des Speicherbereichs mem_area, die nur in dieser Variante der Anweisung ASSIGN möglich ist. Er wirkt wie die obsolete Angabe TABLE FIELD (name) beim normalen ASSIGN mit dem Unterschied, dass der Suchbereich auf die aktuelle Hauptprogrammgruppe beschränkt ist.

Zusatz 3

... casting_spec

Wirkung

Die Angabe von casting_spec entspricht der beim normalen ASSIGN mit der Einschränkung, dass bei Verwendung des Zusatzes INITIAL vor mem_area und bei der Angabe einer internen Tabelle keine expliziten Angaben gemacht werden können. Das Feldsymbol übernimmt dann also den Datentyp des Datenobjekts in mem_area bzw. den Zeilentyp der internen Tabelle.

Beispiel

Eine typische Verwendung der Anweisung ASSIGN LOCAL COPY war die Erzeugung einer lokalen Kopie eines globalen Datenobjekts.

Das folgende Unterprogramm zeigt, wie die gleiche Funktionalität allgemeingültig mit einer Datenreferenz implementiert werden kann.






PERFORM Short Reference   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7158 Date: 20240427 Time: 050225     sap01-206 ( 105 ms )