Ansicht
Dokumentation

ABAPDESCRIBE_FIELD - DESCRIBE FIELD

ABAPDESCRIBE_FIELD - DESCRIBE FIELD

BAL Application Log Documentation   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

DESCRIBE FIELD

Kurzreferenz



DESCRIBE FIELD dobj
  $[TYPE typ $[COMPONENTS com$]$]
  $[LENGTH ilen IN ${BYTE$|CHARACTER$} MODE$]
  $[DECIMALS dec$]
  $[OUTPUT-LENGTH olen$]
  $[HELP-ID hlp$]
  $[EDIT MASK mask$].

Zusätze:

1. ... TYPE typ $[COMPONENTS com$]

2. ... LENGTH ilen IN ${BYTE$|CHARACTER$} MODE

3. ... DECIMALS dec

4. ... OUTPUT-LENGTH olen

5. ... HELP-ID hlp

6. ... EDIT MASK mask

Wirkung

Diese Anweisung ermittelt einige Eigenschaften des Datenobjekts dobj und weist sie den angegebenen Zielfeldern zu. Als Zielfelder jedes Zusatzes können angegeben werden:

  • Vorhandene Variablen, in die der Rückgabewert konvertiert werden kann.

Die verschiedenen Zusätze erlauben es, den Datentyp und die Anzahl der Komponenten bei Strukturen, die im Speicher belegte Länge, die Anzahl der Nachkommastellen, die Ausgabelänge, die Bezeichnung des Datentyps bei einem Bezug auf ein Datenelement des ABAP Dictionarys und eine eventuelle Konvertierungsroutine zu bestimmen.

Hinweise

  • Für dobj können insbesondere auch Feldsymbole oder Formalparameter in Prozeduren angegeben werden, wodurch die Eigenschaften des Datenobjekts festgestellt werden, die diese zum Zeitpunkt der Ausführung der Anweisung repräsentieren.
  • Die Anweisung DESCRIBE ist im Wesentlichen für die Bestimmung der Eigenschaften von Datenobjekten elementarer Datentypen geeignet. Wenn DESCRIBE auf Strukturen oder Datenobjekte tiefer Datentypen wie Strings, interne Tabellen oder Referenzvariablen angewendet wird, können nur elementare Eigenschaften festgestellt werden. Weitergehende Informationen, wie z.B. der statische oder dynamische Typ einer Referenzvariablen, sind mit DESCRIBE nicht feststellbar. Für solche Informationen sind die Typbeschreibungsklassen der Run Time Type Services (RTTS) zu verwenden, mit denen alle Eigenschaften von Datenobjekten aller Datentypen bestimmt werden können.

Zusatz 1

... TYPE typ $[COMPONENTS com$]

Wirkung

Der Datentyp des Datenobjekts dobj wird bestimmt. Der Rückgabewert ist eine einstellige Zeichen-ID. Bei einer Inline-Deklaration für typ wird eine Variable vom Typ c der Länge 1 deklariert. Die folgenden Tabellen zeigen die Zuordnung der Rückgabewerte zu allen möglichen Datentypen, wobei die Groß-/Kleinschreibung der Kennung relevant ist.

Die Typbeschreibungsklassen von Runtime Type Services (RTTS) verwenden Konstanten mit Werten, die den internen zeichenartigen IDs für alle möglichen Datentypen entsprechen. Diese Konstanten werden in der Klasse CL_ABAP_TYPEDESCR definiert und in der Spalte RTTS-Konstante angezeigt.

Numerischer Datentyp ID RTTS-Konstante
b b TYPEKIND_INT1
s s TYPEKIND_INT2
i I TYPEKIND_INT
int8 8 TYPEKIND_INT8
p P TYPEKIND_PACKED
decfloat16 a TYPEKIND_DECFLOAT16
decfloat34 e TYPEKIND_DECFLOAT34
f F TYPEKIND_FLOAT

Zeichenartiger Datentyp ID RTTS-Konstante
c C TYPEKIND_CHAR
n N TYPEKIND_NUM
string g TYPEKIND_STRING

Byteartiger Datentyp ID RTTS-Konstante
x X TYPEKIND_HEX
xstring y TYPEKIND_XSTRING

Datums-/Zeit-/Zeitstempeltyp ID RTTS-Konstante
d D TYPEKIND_DATE
t T TYPEKIND_TIME
utclong p TYPEKIND_UTCLONG

Aufzählungstyp ID RTTS-Konstante
Aufzählungstyp k TYPEKIND_ENUM

Bezugstyp ID RTTS-Konstante
Datenreferenz l TYPEKIND_DREF
Objektreferenz r TYPEKIND_OREF

Komplexer Typ ID RTTS-Konstante
Flache Struktur u TYPEKIND_STRUCT1
Tiefe Struktur v TYPEKIND_STRUCT2
Interne Tabelle h TYPEKIND_TABLE

Der Zusatz COMPONENTS bestimmt die Anzahl der direkten Komponenten des Datenobjekts dobj. Der Rückgabewert ist vom Typ i. Bei einer Inline-Deklaration wird eine Variable vom Typ i deklariert. Wenn das Datenobjekt dobj keine Struktur ist, wird der Wert 0 zurückgegeben. Wenn dobj eine geschachtelte Struktur ist, werden nur die Komponenten der höchsten Hierarchiestufe gezählt.

Hinweis

Wenn DESCRIBE FIELD auf eine statische Box angewendet wird, wird ihr Datentyp gemäß obiger Tabelle und nicht die interne Kennung j für die Boxed Component zurück gegeben.

Beispiel

Für die tiefe geschachtelte Struktur struc1 werden die Typkennung "v" und drei Komponenten, für die flache Struktur struc2 werden die Typkennung "u" und zwei Komponenten festgestellt.

Zusatz 2

... LENGTH ilen IN ${BYTE$|CHARACTER$} MODE

Wirkung

Die vom Datenobjekt dobj im Speicher direkt belegte Länge wird je nach MODE-Zusatz in Bytes oder in Zeichen bestimmt. Der Rückgabewert ist vom Typ i. Bei einer Inline-Deklaration wird eine Variable vom Typ i deklariert.

Die Variante mit dem Zusatz IN BYTE MODE stellt die Länge des Datenobjekts dobj in Bytes fest. Die Variante mit dem Zusatz IN CHARACTER MODE stellt die Länge des Datenobjekts dobj in Zeichen fest. Bei Verwendung von IN CHARACTER MODE muss der Datentyp von dobj flach und zeichenartig sein. Bei tiefen Datentypen kann nur IN BYTE MODE angegeben werden und es wird immer die Länge der beteiligten Referenzen (pro Referenz 8 Byte) festgestellt.

Hinweise

  • Bei Datenobjekten fester Länge wird die bei der Erzeugung des Datenobjekts festgelegte Länge festgestellt. Um die belegte Länge von zeichenartigen Datenobjekten ohne Berücksichtigung schließender Leerzeichen festzustellen, kann die eingebaute Funktion strlen verwendet werden.
  • Bei Strukturen tragen die Ausrichtungslücken zur Länge bei. Dies gilt insbesondere auch für die Ausrichtungslücke, die vor dem Ende der Struktur auftreten kann.

Beispiel

Berechnung, wieviele Bytes zur Darstellung eines Zeichens benötigt werden. In Multi-Byte-Systemen ist das Ergebnis größer als 1.

Beispiel

Das Ergebnis len der folgenden DESCRIBE-Anweisung ist wegen einer schließenden Ausrichtungslücke in struct nicht 9 sondern 10.



Zusatz 3

... DECIMALS dec

Wirkung

Die Anzahl der Nachkommastellen des Datenobjekts dobj wird bestimmt. Der Rückgabewert ist vom Typ i. Bei einer Inline-Deklaration wird eine Variable vom Typ i deklariert.

Hinweis

Da nur Datenobjekte vom Datentyp p Nachkommastellen haben können, kann nur bei diesen ein von 0 verschiedenes Ergebnis in dec auftreten.

Beispiel

Es werden einmal 0 und einmal 4 Nachkommastellen erkannt.

Zusatz 4

... OUTPUT-LENGTH olen

Wirkung

Bei Datenobjekten fester Länge wird die auf Bildschirmbildern benötigte Ausgabelänge des Datenobjekts dobj bestimmt. Der Rückgabewert ist vom Typ i. Bei einer Inline-Deklaration wird eine Variable vom Typ i deklariert.

Das Ergebnis entspricht in der Regel der vordefinierten Ausgabelänge, die das Datenobjekt gemäß seinem Datentyp bei einer Ausgabe in den Listenpuffer hat . Bei Strings wird olen immer auf den Wert 0 gesetzt. Für olen wird der Datentyp i erwartet.

Hinweise

  • In der Regel ist die benötigte Ausgabelänge durch die Angabe in der Tabelle für vordefinierte Ausgabelängen ausreichend bestimmt, außer wenn der Datentyp des Datenobjekts mit Bezug auf das ABAP Dictionary definiert ist und bei der entsprechenden Domäne eine Ausgabelänge oder eine Konvertierungsroutine festgelegt ist.
  • Wenn die in einem Dynpro definierte Ausgabelänge eines zu dobj gleichnamigen Dynpro-Felds kleiner als die benötigte Ausgabelänge ist, kommt es bei einem Überlauf zu einer unbehandelbaren Ausnahme. Bei der Übergabe an den Listenpuffer werden Ausgaben gekürzt, wenn die Ausgabelänge kürzer als die benötigte Ausgabelänge ist.
  • Wenn für die Ausgabe eines Datentyps Trennzeichen oder Masken im Benutzerstammsatz vorgesehen sind, werden diese nur angezeigt, falls die vorgesehene Ausgabelänge ausreichend ist. Die benötigte Länge kann größer als die mit OUTPUT-LENGTH festgestellte Ausgabelänge sein.
  • Für Strings kann die Ausgabelänge mit den Funktionen strlen bzw. xstrlen ermittelt werden.

Beispiel

Für date1 wird die zum Typ d gehörige Ausgabelänge 8, für date2 die in der Domäne SYDATS definierte Ausgabelänge 10 festgestellt.

Zusatz 5

... HELP-ID hlp

Wirkung

Wenn der Datentyp des Datenobjekts dobj durch ein DDIC-Datenelement bestimmt wird, wird die Bezeichnung des Datentyps zugewiesen, die bei der Definition des Datenobjekts dobj hinter dem Zusatz TYPE verwendet wurde. Der Rückgabewert ist eine Zeichenkette. Bei einer Inline-Deklaration wird eine Variable vom Typ string deklariert.

Wenn sich das Datenobjekt nicht auf ein Datenelement des ABAP Dictionarys bezieht, wird hlp initialisiert. Für hlp wird ein zeichenartiges Datenobjekt erwartet.

Wenn für dobj ein Feldsymbol angegeben ist, dem mit der Anweisung ASSIGN COMPONENT eine Strukturkomponente zugewiesen wurde, die sich auf eine Komponente einer DDIC-Struktur bezieht, wird die vollständige Bezeichnung der Strukturkomponente zurückgegeben.

Hinweis

Der Zusatz heißt HELP-ID, da der Name des Datentyps in hlp für die Anzeige der im ABAP Dictionary zugeordneten Feld- oder Eingabehilfe verwendet werden kann.

Beispiel

Nach DESCRIBE FIELD enthält hlp den Wert "SPFLI-CARRID". Da dieser Komponente im ABAP Dictionary eine Eingabehilfe zugeordnet ist, kann diese über den Funktionsbaustein F4IF_FIELD_VALUE_REQUEST aufgerufen werden. Wenn bei der Definition von carrid hinter TYPE die Bezeichnung s_carr_id angegeben wird, würde hlp den Wert "S_CARR_ID" enthalten und könnte beispielsweise verwendet werden, um mit dem Funktionsbaustein HELP_OBJECT_SHOW die Feldhilfe aufzurufen.

Beispiel

Nach DESCRIBE FIELD enthält hlp auch in diesem Beispiel den Wert "SPFLI-CARRID".

Zusatz 6

... EDIT MASK mask

Wirkung

Wenn dem Datenobjekt dobj durch Bezug auf eine Domäne im ABAP Dictionary eine Konvertierungsroutine zugeordnet ist, wird der Name der Konvertierungsroutine bestimmt und diesem werden zwei Gleichheitszeichen "==" vorangestellt. Der Rückgabewert ist eine Zeichenkette. Bei einer Inline-Deklaration wird eine Variable vom Typ string deklariert. Wenn dem Datenobjekt keine Konvertierungsroutine zugeordnet ist, wird mask initialisiert bzw. bleibt initial.

Hinweis

Ein solcherart versorgtes Datenobjekt mask kann direkt im Zusatz USING EDIT MASK der Anweisung WRITE $[TO$] zum Aufruf der Konvertierungsroutine verwendet werden.

Beispiel

Da das Datenelement S_FLTIME im ABAP Dictionary über die Domäne S_DURA mit der Konvertierungsroutine SDURA verknüpft ist, enthält msk nach DESCRIBE FIELD den Wert"==SDURA" und die WRITE TO-Anweisung gibt den von Sekunden in Minuten umgerechneten Wert "5:33" aus.






General Data in Customer Master   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 23865 Date: 20240329 Time: 093140     sap01-206 ( 263 ms )