Ansicht
Dokumentation
ABAPDESCRIBE_FIELD_INTO - DESCRIBE FIELD INTO
SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up PERFORM Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
DESCRIBE FIELD INTO
Diese Anweisung ist nur zum internen Gebrauch bestimmt.
Sie darf nicht in Anwendungsprogrammen verwendet werden.
DESCRIBE FIELD dobj INTO td.
Wirkung
Sämtliche Eigenschaften des Feldes f, seiner Komponenten, Unterkomponenten usw. werden in das Feld td (Typbeschreibung bzw. type description) ausgegeben. Dabei muss td vom Typ sydes_desc sein, der im Type-Pool SYDES definiert ist.
Die Struktur sydes_desc hat zwei tabellenartige Komponenten, types und names:
- In types ist die Baumstruktur des zu f gehörigen Typs abgebildet. Dabei werden die Komponenten eines Knotens dicht in der Tabelle types abgelegt. Anfang und Ende des die Komponenten repräsentierenden Zeilenbereichs sind in types-from und types-tp abgelegt. Der Verweis zum übergeordneten Knoten findet sich in types-back. Existiert kein über- bzw. untergeordneter Knoten, so wird dies durch den Wert 0 gekennzeichnet (zur Bedeutung weiterer Komponenten, siehe weiter unten).
- Die Namen von Komponenten, Typen etc. werden nicht direkt in types abgelegt. Stattdessen wird in den Komponenten types-idx_... jeweils ein Index in die Namenstabelle names gehalten. Der Wert 0 zeigt an, dass es keinen Verweis in die Namenstabelle gibt.
- names enthält in der Komponente names-name die eventuell in mehrere Teile zerlegten Namen. Falls ein Name in der nächsten Zeile fortgesetzt wird, ist dies durch einen Stern ('*') in der Komponente names-continue gekennzeichnet.
Neben der Information über die Baumstruktur sind in der Typbeschreibungstabelle (types) weitere Informationen über den Typ von f bzw. seiner Komponenten abgelegt. Dies schließt insbesondere auch alle Informationen ein, die mit den üblichen Zusätzen zu DESCRIBE FIELD ermittelt werden können. Im einzelnen enthält types noch folgende Spalten:
idx_name
Komponentenname
idx_user_type
Name eines benutzerdefinierten Typs, d.h. eines Typs, der durch eine TYPES-Anweisung definiert wurde. Abgeleitete Typen (... TYPE a-b) sowie Strukturen aus dem ABAP Dictionary zählen nicht als benutzerdefinierte Typen.
context
Nur für benutzerdefinierte Typen: Der Kontext, in dem der Typ definiert ist. Mögliche Werte sind in der Konstanten sydes_context des Type-Pools
SYDES definiert. Diese Konstanten sollten nur bei Vergleichen verwendet werden. Im einzelnen werden folgende Typ-Kontexte unterschieden:
sydes_context-program: Programm-globaler Typ
sydes_context-form : form-lokaler Typ
sydes_context-function: function-lokaler Typ
sydes_context-method : method-lokaler Typ
idx_context_name
Nur für benutzerdefinierte Typen:
Bei lokalem Kontext: Der Name der FORM oder FUNCTION,
in welcher der Typ definiert wurde. Der Name des zugehörigen Programms steht dann als erster Eintrag in der Namenstabelle.
Bei globalem Kontext: Der Name des Programms, in dem der Typ definiert wurde.
idx_edit_mask
Konvertierungsroutine aus dem ABAP Dictionary, entspricht dem Zusatz EDIT MASK beim einfachen DESCRIBE
idx_help_id
Help-ID bei Bezug auf Felder aus dem ABAP Dictionary
length
Interne Länge, entspricht dem Zusatz LENGTH beim einfachen DESCRIBE
output_length
Ausgabelänge, entspricht dem Zusatz OUTPUT-LENGTH beim einfachen DESCRIBE
decimals
Anzahl der Dezimalstellen, entspricht dem Zusatz DECIMALS beim einfachen DESCRIBE
type
ABAP-Typ, entspricht dem Zusatz TYPE beim einfachen DESCRIBE. Wenn DESCRIBE INTO auf eine geschachtelte Struktur angewendet wird, die eine Boxed Component enthält, wird deren Typ mit der internen Kennung j (statische Box) zurückgegeben.
table_kind
Hier ist für die Komponenten, die eine interne Tabelle repräsentieren, die
Tabellenart abgelegt. Es werden dieselben Werte wie bei der Variante DESCRIBE TABLE itab KIND
k zurückgegeben. Für Komponenten, die keine Tabelle repräsentieren, wird der Rückgabewert auf sydes_kind-undefined gesetzt (siehe auch Type-Pool
SYDES).
Beispiel
Gegeben sei die folgende Definition für den komplexen Datentyp employee_struc.
Durch Einziehen des Type-Pools SYDES kann die Struktur des Typs wie folgt ermittelt werden:
DATA: employee TYPE employee_struc,
td TYPE sydes_desc.
DESCRIBE FIELD employee INTO td.
Die folgende Tabelle zeigt einige ausgewählte Spalten der Typbeschreibungstabelle td-types. Zur besseren Übersicht wurden die Namen der Spalten idx_name, idx_user_type und idx_edit_mask abgekürzt:
|FROM| TO |BACK|NAME|UTYP|EMSK|TYPE
---|----|----|----|----|----|----|----
01 | 2 | 7 | 0 | 0 | 2 | 0 | v
02 | 0 | 0 | 1 | 6 | 0 | 4 | N
03 | 8 | 9 | 1 | 7 | 5 | 0 | u
04 | 10 | 12 | 1 | 8 | 0 | 0 | u
05 | 0 |
0 | 1 | 9 | 0 | 0 | P
06 | 13 | 13 | 1 | 11 | 0 | 0 | h
07 | 17 | 17 | 1 | 12 | 0 | 0 | h
08 | 0 | 0 | 3 | 13 | 0 | 0 | C
09 | 0 | 0 | 3 | 14 | 0 | 0 | C
10 |
0 | 0 | 4 | 15 | 0 | 0 | C
11 | 0 | 0 | 4 | 16 | 0 | 0 | N
12 | 0 | 0 | 4 | 17 | 0 | 0 | C
13 | 14 | 16 | 6 | 0 | 18 | 0 | u
14 | 0 | 0 | 13 | 20 | 0 | 0 | D
15 | 0 | 0 | 13 | 21 | 0 | 0 | T
16 | 0 | 0 | 13 | 22 | 0 | 0 | T
17 | 0 | 0 | 7 | 0 | 0 | 0 | N
Man beachte, dass die Einträge in den Zeilen 6 und 7 interne Tabellen repräsentieren (ABAP-Typ
h). Zu einer internen Tabelle gibt es immer einen Eintrag für den zugehörigen Zeilentyp (Zeilen 13 und 17).
Die Indizes in den Spalten 5 bis 7 verweisen auf Einträge in der Namenstabelle td-names. Betrachtet man z.B. Zeile 3, dann findet man den zum Eintrag gehörigen Komponentennamen in td-names ab Zeile 7
(name) und den zugehörigen Benutzertyp ab Zeile 5
(name_struc).
In der Namenstabelle td-names finden sich die folgenden Einträge.
Man beachte, dass die Namen SALARY_PER_MONTH
und ABSENCE_TIME_STRUC in zwei Teilen abgelegt sind:
|CONTINUE|NAME
|CONTINUE|NAME
---|--------|-------------- ----|--------|--------------
01 | |DESCTEST
12 | |PHONE
02 | |EMPLOYEE_STRUC
13 | |FIRST
03 |
|SBOOK-CUSTOMID 14 | |LAST
04 | |==ALPHA
15 | |STREET
05 | |NAME_STRUC
16 | |ZIPCODE
06 | |ID
17 | |PLACE
07 | |NAME
18 | * |ABSENCE_TIME_ST
08 | |ADDRESS
19 | |RUC
09 | * |SALARY_PER_MONT
20 | |DAY
10 |
|H
21 | |FROM
11 | |ABSENT
22 | |TO
rdisp/max_wprun_time - Maximum work process run time General Material Data
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 12503 Date: 20240426 Time: 110247 sap01-206 ( 122 ms )