ABAPASSIGN_CASTING - ASSIGN CASTING

BAL Application Log Documentation   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.

ASSIGN - casting_spec

Kurzreferenz



Syntax

... { }
  | { CASTING { { }
              | {TYPE type|(name)}
              | {LIKE dobj}
              | {[TYPE p] DECIMALS dec}
              | {TYPE HANDLE handle} } }
  | { obsolete_casting } ... .

Alternativen:

1. ... { }

2. ... CASTING ...

Wirkung

Die Angabe casting_spec legt fest, mit welchem Datentyp der dem Feldsymbol zugewiesene Speicherbereichmem_areabehandelt wird, wenn eine Anweisung das Feldsymbol an einer Operandenposition enthält. Es kannentweder keine Angabe gemacht oder der Zusatz CASTING angegeben werden. Außerhalb vonKlassen sind auch noch die obsoleten Varianten obsolete_casting möglich.

Alternative 1

... { }


Wirkung

Falls für casting_spec keine Angabe gemacht wird, übernimmt das Feldsymbol denDatentyp des in mem_area verwendeten Datenobjekts und der zugewiesene Speicherbereich wird entsprechend behandelt. Dieser Datentyp muss zurTypisierung des Feldsymbolspassen.

Alternative 2

... CASTING ...


Zusätze:

1. ... { }

2. ... TYPE type|(name)

3. ... LIKE dobj

4. ... [TYPE p] DECIMALS dec

5. ... TYPE HANDLE handle

Wirkung

Falls in casting_spec der Zusatz CASTING verwendet wird, wird der Speicherbereich so behandelt,als hätte er den durch CASTING angegebenen Typ. Bei der Angabe von CASTING darfdas Feldsymbol nicht mit dem obsoleten Zusatz STRUCTURE der Anweisung FIELD-SYMBOLS typisiert sein.

Das Casting erfolgt kann entweder implizit über die Typisierung des Feldsymbols oder explizitüber einen der Zusätze TYPE, LIKE der DECIMALS erfolgen. Beim expliziten Casting darf das Feldsymbol nicht vollständig, sondern nur generisch typisiert sein.

Hinweise

  • Falls der durch CASTING festgelegte Datentyptiefist, müssen die tiefen Komponenten bezüglich Typ und Position genauso im zugewiesenen Speicherbereich auftreten. Dies bedeutet insbesondere, dass eine einzelneReferenzvariable nur einem Feldsymbol zugewiesen werden kann, das als Referenzvariable vom gleichenstatischen Typ typisiert ist.

  • Die statische Überprüfung der Anweisung ASSIGN mit dem Zusatz CASTING erfolgtso, dass unabhängig vom System und der Plattform, auf der die Prüfung stattfindet, alle Fehler für Unicode- und Nicht-Unicode-Systemesowie für alle Plattformen festgestellt werden. Bei einer Überprüfung zur Laufzeitwird nur gegen das aktuelle System bzw. die aktuelle Plattform geprüft. Diese Überprüfungenfinden ebenfalls immer dann statt, wenn das Feldsymbol <fs> mit dem obsoleten Zusatz STRUCTURE der Anweisung FIELD-SYMBOLS typisiert ist.

  • Bei Verwendung des Zusatzes CASTING kann das Ergebnis der Anweisung ASSIGN plattformabhängig sein. Beispielsweise kann die interneByte-Reihenfolge vonZeichen in Unicode-Systemen plattformabhängig sein, was sich bei einem Cast auf einen byteartigen Datentyp bemerkbar macht.


Zusatz 1

... { }

Wirkung

Falls der Zusatz CASTING ohne weiteren Zusatz angegeben ist, wird der zugewiesene Speicherbereichauf den Typ des Feldsymbols gecastet. Das Feldsymbol muss entweder vollständig oder mit einem der generischen eingebauten ABAP-Typen c, n, p oder x typisiert sein.

Zusatz 2

... TYPE type|(name)

Wirkung

Hinter TYPE kann entweder direkt ein Datentyp type oder ein eingeklammertes zeichenartigesDatenobjekt name angegeben werden, das bei Ausführung der Anweisung die Bezeichnung einesDatentyps in Großbuchstaben enthalten muss. Der zugewiesene Speicherbereich wird auf den angegebenenTyp gecastet. Der hinter TYPE angegebene Datentyp kann generisch sein. Es dürfen aber keine Tabellenarten und kein REF TO angegeben werden.

Das Feldsymbol darf nicht vollständig, sondern nur generisch typisiert sein. Der angegebene Datentyp muss zur generischenTypisierung des Feldsymbolspassen, d.h., dasCasting darf die generische Typisierung spezialisieren, aber nicht verallgemeinern.

Wenn hinter TYPE ein generischer zeichenartiger Typ c oder n angegeben ist, mussin Unicode-Programmen bei Ausführung der Anweisung die Länge des zugewiesenen Speicherbereichs ein Vielfaches der Länge eines Zeichens im Speicher sein.

Zusatz 3

... LIKE dobj

Wirkung

Hinter LIKE muss direkt ein Datenobjekt angegeben werden. Der zugewiesene Speicherbereich wird auf den Datentyp des Datenobjekts gecastet. Innerhalb einerProzedurkann für dobj kein vollständig generisch typisierter Formalparameter angegeben werden.

Das Feldsymbol darf nicht vollständig, sondern nur generisch typisiert sein. Der angegebene Datentyp muss zur generischenTypisierung des Feldsymbolspassen, d.h., dasCasting darf die generische Typisierung spezialisieren, aber nicht verallgemeinern.

Hinweis

Zu den Datenobjekten, auf die man sich mit LIKE beziehen kann, gehören außer solchen des eigenen Programms auch die öffentlichen Attribute globaler Klassen.

Zusatz 4

... [TYPE p] DECIMALS dec

Wirkung

Hinter DECIMALS muss ein numerisches Datenobjekt dec angegeben werden. Der zugewiesene Speicherbereich wird auf den Datentyp p gecastet, wobei die Anzahl derNachkommastellendurch den Inhalt von dec festgelegt wird. Die Anzahl der Nachkommastellen darf nicht größer als die Anzahl derDezimalstellensein. TYPE muss bei DECIMALS nicht angegeben werden. Falls TYPE verwendet wird, kann nur der ohnehin verwendete Datentyp p angegeben werden.

Das Feldsymbol darf nicht vollständig, sondern nur generisch typisiert sein. Der angegebene Datentyp muss zur generischenTypisierung des Feldsymbolspassen, d.h., dasCasting darf die generische Typisierung spezialisieren, aber nicht verallgemeinern.

Beispiel

Die Berechnung des Quotienten aus der gepackten Zahl pack und dem Feldsymbol <pack>demonstriert die Wirkung des Castings mit dem Zusatz DECIMALS. Es werden Faktoren zwischen 10und 100.000.000 ermittelt. Bei der Verwendung von <pack> in Operandenpositionen wird also ein anderer Wert verwendet als bei der Verwendung von pack.

DATA factor TYPE p LENGTH 8 DECIMALS 0.
DATA pack   TYPE p LENGTH 8 DECIMALS 0 VALUE '12345678'.
FIELD-SYMBOLS <pack> TYPE p.

DO 8 TIMES.
  ASSIGN pack TO <pack> CASTING DECIMALS sy-index.
  factor = pack / <pack>.
  WRITE / factor.
ENDDO.

Zusatz 5

... TYPE HANDLE handle

Wirkung

Hinter TYPE HANDLE muss eine Referenzvariable handle vom statischen Typ der KlasseCL_ABAP_DATADESCR oder deren Unterklassen angegeben werden, die auf einTypobjekt derRTTS zeigt. Der zugewiesene Speicherbereich wird auf den durch das Typobjekt beschriebenen Typ gecastet.

Das Feldsymbol darf nicht vollständig, sondern nur generisch typisiert sein. Der angegebene Datentyp muss zur generischenTypisierung des Feldsymbolspassen, d.h., dasCasting darf die generische Typisierung spezialisieren, aber nicht verallgemeinern.

Hinweis

Das Typobjekt kann durch Anwendung der Methoden der RTTS auf vorhandene Datenobjekte oder durch die Definition eines neuen Datentyps erzeugt worden sein.




CL_GUI_FRONTEND_SERVICES - Frontend Services   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 12964 Date: 20120526 Time: 231701     triton ( 409 ms )