ABAPASSIGN_MEM_AREA - ASSIGN MEM AREA
CPI1466 during Backup Addresses (Business Address Services)Diese Dokumentation steht unter dem Copyright der SAP AG.
ASSIGN - mem_area
Syntax
... { dobj[+off][(len)] }
| { dynamic_dobj }
| { dynamic_access } ... .
Alternativen:
Statische Angabe
1. ... dobj[+off][(len)]
Dynamische Angaben
2. ... dynamic_dobj
3. ... dynamic_access
Wirkung
Mit mem_area wird der Speicherbereich spezifiziert, der dem Feldsymbol zugewiesen wird.
Die erste Variante ist eine statische Variante, während die übrigen Varianten dynamischeVarianten darstellen. Die Varianten dynamic_dobjdienen dem allgemeinen dynamischen Zugriff auf Datenobjekte, die Varianten dynamic_accessdienen dem dynamischen Zugriff auf die Attribute von Klassen.
Statische und dynamische Varianten unterscheiden sich auch dadurch, wie sich das System nach nicht erfolgreicherZuweisung verhält: Bei den dynamischen Varianten setzt die Anweisung ASSIGN den Rückgabewert sy-subrc, nicht aber bei der statischen Variante.
Hinweis
Von einer internen Tabelle mit Kopfzeile kann entweder nur diese oder nur derTabellenkörpereinem Feldsymbol zugewiesen werden. In der Anweisung ASSIGN adressiert der Name einer internenTabelle mit Kopfzeile die Kopfzeile. Um den Tabellenkörper anzusprechen, muss wie üblich[] an den Namen angehängt werden. Ein Feldsymbol, dem ein Tabellenkörper zugewiesen ist, verhält sich an Operandenpositionen wie eine Tabelle ohne Kopfzeile.
Alternative 1
... dobj[+off][(len)]
Wirkung
Der Speicherbereich wird durch ein nach den im AbschnittDatenobjektein Operandenpositionen beschriebenen Regeln angegebenes Datenobjekt dobj spezifiziert. Insbesonderekann dobj selbst durch ein Feldsymbol angegeben werden. Bei einer Offset-/Längenangabe darf der Datentyp von dobj hier aber weder string noch xstring sein.
- Wenn keine Offset-/Längenangabe gemacht wird, entspricht der zugewiesene Speicherbereich genaudem Speicherbereich des Datenobjekts. Dem Feldsymbol wird das gesamte Datenobjekt dobj zugewiesen und Anweisungen, die das Feldsymbol an Operandenpositionen enthalten, arbeiten mit dem Datenobjekt.
- Wenn eine Offset-/Längenangabe gemacht wird, wird der Speicherbereich aus der Speicheradressedes Datenobjekts und den Offset-/Längenangaben bestimmt. Es kann Speicher außerhalb derFeldgrenzen von dobj adressiert werden. Der adressierbare Speicher richtet sich nach der Angaberange_spec.Falls ein Offset off ohne Länge len angegeben ist, wird für len implizit die Länge des Datenobjekts dobj verwendet.
Falls für dobj der Name eines Datenobjekts angegeben ist und kein expliziter RANGE-Zusatz verwendet wird, kann inUnicode-Programmenkein Offset off ohne Länge len angegeben werden wenn. Falls für dobj der Name eines Feldsymbols angegeben ist, muss dessen Datentyp in Unicode-Programmenflach und elementar sein, wenn ein Offset off ohne Länge len angegeben wird. - Wenn für dobj ein Feldsymbol angegeben ist, dem bereits ein Speicherbereich zugewiesenist, kann der Inhalt der Offsetangabe negativ sein, so lange der in range_spec angegebene Bereich nicht verlassen wird.
Wenn die Zuweisung nicht erfolgreich ist, ist dem Feldsymbol nach der ASSIGN-Anweisung kein Speicherbereichzugewiesen. Der Rückgabewert sy-subrc wird bei der statischen Variante nicht gesetzt.Statt dessen kann der logische Ausdruck <fs> IS ASSIGNED ausgewertet werden.
Hinweise
- Achten Sie darauf, nach der statischen Variante nicht aus Versehen das Systemfeld sy-subrc auszuwerten.Der Wert des Systemfelds ist in diesem Fall immer der, den es vor Ausführung der Anweisung ASSIGN hatte und sagt nichts über den Erfolg dieser Anweisung aus.
- Auch die statische Variante ist dahingehend dynamisch, dass die Offset-/Längenangaben dynamisch sein können.
Beispiel
Zuweisung des Speicherbereichs der einzelnen Zeichen eines Datenobjekts text an ein Feldsymbol <char>.
DATA text TYPE c LENGTH 10 VALUE '0123456789'.
FIELD-SYMBOLS <char> TYPE c.
DATA off TYPE i.
DO 10 TIMES.
off = sy-index - 1.
ASSIGN text+off(1) TO <char>.
WRITE / <char>.
ENDDO.
General Data in Customer Master General Data in Customer Master
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 6664 Date: 20120526 Time: 231752 triton ( 239 ms )






