ABAPDESCRIBE_FIELD_INTO - DESCRIBE FIELD INTO
BAL Application Log Documentation RFUMSV00 - Advance Return for Tax on Sales/PurchasesDiese 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.
Syntax
DESCRIBE FIELD dobj INTO td.
Wirkung
Sämtliche Eigenschaften des Feldes f, seiner Komponenten, Unterkomponenten usw. werden in das Feld td (type description) ausgegeben. Dabei muss td vom Typ SYDES_DESC sein, der in derTypgruppe 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 Komponenteneines Knotens dicht in der Tabelle TYPES abgelegt. Anfang und Ende des die Komponenten repräsentierendenZeilenbereichs sind in TYPES-FROM und TYPES-TO abgelegt. Der Verweis zum übergeordneten Knotenfindet 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 denKomponenten 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) weitereInformationen über den Typ von f bzw. seiner Komponenten abgelegt. Dies schließtinsbesondere 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-Anweisungdefiniert 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 der TypgruppeSYDES definiert. Bitte nur diese Konstanten bei Vergleichen verwenden. 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 eineBoxedComponent 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, dieTabellenart abgelegt.Es werden dieselben Werte wie bei der Variante DESCRIBE TABLE itab KINDk zurückgegeben. Für Komponenten, die keine Tabelle repräsentieren, wird der Rückgabewert auf SYDES_KIND-UNDEFINED gesetzt (siehe auch TypgruppeSYDES).
Beispiel
Gegeben sei die folgende Definition für den komplexen Datentyp EMPLOYEE_STRUC:
PROGRAM DESCTEST.
TYPES: BEGIN OF name_struc,
first TYPE c LENGTH 20,
last TYPE c LENGTH 20,
END OF name_struc,
BEGIN OF absence_time_struc,
day TYPE d,
from TYPE t,
to TYPE t,
END OF absence_time_struc,
phone_number TYPE n LENGTH 20,
BEGIN OF employee_struc,
id LIKE sbook-customid,
name TYPE name_struc,
BEGIN OF address,
street TYPE c LENGTH 30,
zipcode TYPE n LENGTH 4,
place TYPE c LENGTH 30,
END OF address,
salary_per_month TYPE p LENGTH 10 DECIMALS 3,
absent TYPE STANDARD TABLE OF absence_time_struc
WITH NON-UNIQUE DEFAULT KEY,
phone TYPE STANDARD TABLE OF phone_number
WITH NON-UNIQUE DEFAULT KEY,
END OF employee_struc.
Durch Einziehen der Typgruppe 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. Zurbesseren Übersicht wurden die Namen der Spalten IDX_NAME, IDX_UERR_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-Typh). 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
Fill RESBD Structure from EBP Component Structure Vendor Master (General Section)
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 13919 Date: 20120526 Time: 195220 triton ( 238 ms )






