* Typ-Beispiele:
* Struct
* RSDSSELOPT
* Table
* RSELOPTION
* Klasse
* CL_DEMO_OUTPUT
* Interface
* IF_RANDOM_NUMBER
* Datenelement
* I
* Referenz
* ?
PARAMETERS: p_name TYPE string DEFAULT 'RSDSSELOPT'.
START-OF-SELECTION.
DATA(o_type_desc) = cl_abap_typedescr=>describe_by_name( p_name ).
CASE o_type_desc->kind.
WHEN cl_abap_typedescr=>kind_struct.
DATA(o_struct_desc) = CAST cl_abap_structdescr( o_type_desc ).
cl_demo_output=>write_data( o_struct_desc->components ).
WHEN cl_abap_typedescr=>kind_table.
DATA(o_table_desc) = CAST cl_abap_tabledescr( o_type_desc ).
DATA(o_tl_struct_desc) = CAST cl_abap_structdescr( o_table_desc->get_table_line_type( ) ).
cl_demo_output=>write_data( o_tl_struct_desc->components ).
WHEN cl_abap_typedescr=>kind_class.
DATA(o_class_desc) = CAST cl_abap_classdescr( o_type_desc ).
LOOP AT o_class_desc->methods ASSIGNING FIELD-SYMBOL(<m>).
cl_demo_output=>write( <m>-name ).
ENDLOOP.
WHEN cl_abap_typedescr=>kind_intf.
DATA(o_if_desc) = CAST cl_abap_intfdescr( o_type_desc ).
LOOP AT o_if_desc->methods ASSIGNING FIELD-SYMBOL(<i>).
cl_demo_output=>write( <i>-name ).
ENDLOOP.
WHEN cl_abap_typedescr=>kind_elem.
DATA(o_elem_desc) = CAST cl_abap_elemdescr( o_type_desc ).
cl_demo_output=>write_data( o_elem_desc->type_kind ).
WHEN cl_abap_typedescr=>kind_ref.
ENDCASE.
cl_demo_output=>display( ).
Links