Ansicht
Dokumentation
ABAPDESCRIBE_FIELD - DESCRIBE FIELD
BAL Application Log Documentation TXBHW - Original Tax Base Amount in Local CurrencyDiese Dokumentation steht unter dem Copyright der SAP AG.
DESCRIBE FIELD
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.
- Inline-Deklarationen DATA(var) oder FINAL(var).
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.
- Bei Aufzählungsobjekten muss der Zusatz IN BYTE MODE angegeben werden und es wird die Länge des tatsächlichen
Aufzählungswerts im
Basistyp bestimmt.
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 )