Ansicht
Dokumentation
ABAPASSIGN_LOCAL_COPY - ASSIGN LOCAL COPY
Fill RESBD Structure from EBP Component Structure TXBHW - Original Tax Base Amount in Local CurrencyDiese Dokumentation steht unter dem Copyright der SAP AG.
ASSIGN LOCAL COPY
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 )