ABAPDESCRIBE_FIELD - DESCRIBE FIELD
PERFORM Short Reference ABAP Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
DESCRIBE FIELD
Syntax
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 angegebenenVariablen zu. Die verschiedenen Zusätze erlauben es, den Datentyp und die Anzahl der Komponenten bei Strukturen, die im Speicher belegte Länge, die Anzahl derNachkommastellen,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 inProzedurenangegeben 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 DatenobjektetieferDatentypen wie Strings, interne Tabellen oder Referenzvariablen angewendet wird, können nur elementareEigenschaften festgestellt werden. Weitergehende Informationen, wie z.B. der statische oder dynamischeTyp einer Referenzvariablen sind mit DESCRIBE nicht feststellbar. Für solche Informationen sind die Typklassen 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 und eine entsprechende einstellige Kennung demDatenobjekt typ zugewiesen, für das ein zeichenartiger Datentyp erwartet wird. Die folgendeTabelle zeigt die Zuordnung der Rückgabewerte zu allen möglichen Datentypen, wobei die Groß-/Kleinschreibung der Kennung relevant ist.
| Kennung | Datentyp |
| a | Elementartyp decfloat16 |
| b | interner Elementartyp b |
| C | Elementartyp c (Ausnahme, siehe Hinweis unten) |
| D | Elementartyp d |
| e | Elementartyp decfloat34 |
| F | Elementartyp f |
| g | Elementartyp string |
| h | interne Tabelle |
| I | Elementartyp i |
| l | Datenreferenz |
| N | Elementartyp n |
| P | Elementartyp p |
| r | Objektreferenz |
| s | interner Elementartyp s |
| T | Elementartyp t |
| u | flache Struktur (Ausnahme, siehe Hinweis unten) |
| v | tiefe Struktur (Ausnahme, siehe Hinweis unten) |
| X | Elementartyp x |
| y | Elementartyp xstring |
Der Zusatz COMPONENTS weist dem Datenobjekt com die Anzahl der direkten Komponenten desDatenobjekts dobj zu. Für com wird der Datentyp i erwartet. Wenn das Datenobjektdobj 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.
Hinweise
- Wenn der Zusatz COMPONENTS nicht verwendet wird, liefert der Zusatz TYPE inNicht-Unicode-Programmen für beliebige Strukturen den Wert "C" statt "u" oder "v".
- Wenn DESCRIBE FIELD direkt auf eine statische Box angewendet wird, wird ihr Datentyp gemäß obiger Tabelle und nicht dieinterne 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 dieflache Struktur struc2 werden die Typkennung "u" und zwei Komponenten festgestellt.
DATA: BEGIN OF struc1,
comp1 TYPE c LENGTH 1,
comp2 TYPE string,
BEGIN OF struc2,
comp1 TYPE c LENGTH 1,
comp2 TYPE i,
END OF struc2,
END OF struc1,
typ1 TYPE c LENGTH 1,
comp1 TYPE i,
typ2 TYPE c LENGTH 1,
comp2 TYPE i.
DESCRIBE FIELD: struc1 TYPE typ1 COMPONENTS comp1,
struc1-struc2 TYPE typ2 COMPONENTS comp2.
Zusatz 2
... LENGTH ilen IN {BYTE|CHARACTER} MODE
Wirkung
Die vom Datenobjekt dobj im Speicher direkt belegte Länge wird je nach MODE-Zusatzin Bytes oder in Zeichen bestimmt und dem Datenobjekt ilen zugewiesen. Für ilen wird der Datentyp i erwartet.
In Unicode-Programmenmuss der MODE-Zusatz angegeben werden. Die Variante mit dem Zusatz IN BYTE MODE stelltdie Länge des Datenobjekts dobj in Bytes fest. Die Variante mit dem Zusatz IN CHARACTERMODE 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. BeitiefenDatentypen kann nur IN BYTE MODE angegeben werden und es wird immer die Länge der Referenz (8 Byte) festgestellt.
In Nicht-Unicode-Programmenkann LENGTH ohne den MODE-Zusatz verwendet werden. In diesem Fall wird implizit der Zusatz IN BYTE MODE verwendet.
Hinweis
Bei Datenobjekten fester Länge wird die bei der Erzeugung des Datenobjekts festgelegte Längefestgestellt. Um die belegte Länge von zeichenartigen Datenobjekten ohne Berücksichtigung schließender Leerzeichen festzustellen, kann dieeingebaute Funktion strlen verwendet werden.
Beispiel
Berechnung, wie viel Bytes zur Darstellung eines Zeichens benötigt werden. In Multi-Byte-Systemen ist das Ergebnis größer als 1.
DATA: text TYPE c LENGTH 1,
blen TYPE i,
clen TYPE i,
bytes TYPE i.
DESCRIBE FIELD text: LENGTH blen IN BYTE MODE,
LENGTH clen IN CHARACTER MODE.
bytes = blen / clen.
Zusatz 3
... DECIMALS dec
Wirkung
Die Anzahl der Nachkommastellen des Datenobjekts dobj wird bestimmt und dem Datenobjekt dec zugewiesen. Für dec wird der Datentyp i erwartet.
Hinweis
Da nur Datenobjekte vom Datentyp p Nachkommastellen haben können, kann nur bei diesen ein von 0 verschiedenes Ergebnis in dec auftreten.
Zusatz 4
... OUTPUT-LENGTH olen
Wirkung
Bei Datenobjekten fester Länge wird die aufBildschirmbildernbenötigte Ausgabelänge des Datenobjekts dobj bestimmt und dem Datenobjekt olenzugewiesen. Das Ergebnis entspricht 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 vordefinierteAusgabelängenbestimmt, 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 gleichnamigenDynpro-Feldskleiner als die benötigte Ausgabelänge ist, kommt es bei einem Überlauf zu einerunbehandelbaren 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 vorgesehensind, werden diese nur angezeigt, falls die vorgesehene Ausgabelänge ausreichend ist. Die benötigteLä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.
DATA: date1 TYPE d,
date2 TYPE sy-datum,
olen1 TYPE i,
olen2 TYPE i.
DESCRIBE FIELD: date1 OUTPUT-LENGTH olen1,
date2 OUTPUT-LENGTH olen2.
Zusatz 5
... HELP-ID hlp
Wirkung
Wenn der Datentyp des Datenobjekts dobj durch ein Datenelement des ABAP Dictionarys bestimmtwird, wird dem Feld hlp die Bezeichnung des Datentyps zugewiesen, die bei der Definition desDatenobjekts dobj hinter dem Zusatz TYPE verwendet wurde. Wenn sich das Datenobjekt nichtauf 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 COMPONENTein Datenobjekt zugewiesen wurde, das sich auf eine Komponente einer Struktur im ABAP Dictionary 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 imABAP Dictionary eine Eingabehilfe zugeordnet ist, kann diese über den Funktionsbaustein F4IF_FIELD_VALUE_REQUESTangezeigt werden. Wenn bei der Definition von carrid hinter TYPE die Bezeichnung s_carr_idangegeben wird, würde hlp den Wert "S_CARR_ID" enthalten und könnte beispielsweise verwendet werden, um mit dem FunktionsbausteinHELP_OBJECT_SHOW die Feldhilfe anzuzeigen.
DATA: carrid TYPE spfli-carrid,
hlp TYPE string,
struc TYPE dfies-tabname,
comp TYPE dfies-fieldname.
DESCRIBE FIELD carrid HELP-ID hlp.
SPLIT hlp AT '-' INTO struc comp.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = struc
fieldname = comp
EXCEPTIONS
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
no_values_found = 4
OTHERS = 5.
Zusatz 6
... EDIT MASK mask
Wirkung
Wenn dem Datenobjekt dobj durch Bezug auf eine Domäne im ABAP Dictionary eine Konvertierungsroutinezugeordnet ist, werden dem Namen der Konvertierungsroutine zwei Gleichheitszeichen "==" vorangestelltund das Ergebnis wird dem Datenobjekt mask zugewiesen. Wenn dem Datenobjekt keine Konvertierungsroutinezugeordnet ist, wird mask initialisiert. Für mask wird ein zeichenartiges Datenobjekt erwartet.
Hinweis
Ein solcherart versorgtes Datenobjekt mask kann direkt im Zusatz USING EDIT MASK der Anweisung WRITE 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ältmsk nach DESCRIBE FIELD den Wert"==SDURA" und die WRITE-Anweisung gibt den von Sekunden in Minuten umgerechneten Wert "5:33" aus.
DATA: time TYPE s_fltime,
seconds TYPE i,
msk TYPE string.
DESCRIBE FIELD time EDIT MASK msk.
seconds = 333.
WRITE seconds USING EDIT MASK msk.
General Data in Customer Master SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 20808 Date: 20120526 Time: 195209 triton ( 401 ms )






