CONSTRUCT_KEY_TABLE

in src/zgoog_cl_data_cluster.clas.abap [0:0]


METHOD CONSTRUCT_KEY_TABLE.

  DATA: lo_struc_def TYPE REF TO cl_abap_structdescr.

  lo_struc_def ?= cl_abap_typedescr=>describe_by_name( iv_table ).

  DATA: lt_key_components TYPE abap_component_tab,
        lr_component TYPE REF TO abap_compdescr.

  LOOP AT lo_struc_def->components REFERENCE INTO lr_component.

    IF iv_incl_srtf2 IS INITIAL.
      IF lr_component->name = 'SRTF2'.
        EXIT.
      ENDIF.
    ENDIF.

    DATA: ls_comp_descr TYPE abap_componentdescr.
    ls_comp_descr-name = lr_component->name.
    ls_comp_descr-type = lo_struc_def->get_component_type( lr_component->name ).
    APPEND ls_comp_descr TO lt_key_components.

    IF lr_component->name = 'SRTF2'.
      EXIT.
    ENDIF.
  ENDLOOP.

  DATA: lo_tab_descr TYPE REF TO cl_abap_tabledescr.

  lo_tab_descr = cl_abap_tabledescr=>create( cl_abap_structdescr=>create( lt_key_components ) ).
  CREATE DATA er_tabdescr TYPE HANDLE lo_tab_descr.