Ansicht
Dokumentation

ABAPDESCRIBE_FIELD_INTO - DESCRIBE FIELD INTO

ABAPDESCRIBE_FIELD_INTO - DESCRIBE FIELD INTO

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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 )