in src/zgoog_cl_data_cluster.clas.abap [0:0]
METHOD SELECT_RECORDS.
DATA: lo_struc_def TYPE REF TO cl_abap_structdescr.
lo_struc_def ?=
cl_abap_typedescr=>describe_by_name( iv_table ).
DATA: lt_where_clause TYPE tt_string.
DATA: lv_and_clause TYPE string.
DATA: lr_component TYPE REF TO abap_compdescr.
LOOP AT lo_struc_def->components
REFERENCE INTO lr_component.
IF lr_component->name = 'MANDT'.
CONTINUE.
ENDIF.
IF lr_component->name = 'SRTF2'.
EXIT.
ENDIF.
DATA: lv_where TYPE string.
lv_where =
|{ lv_and_clause }| &
|{ lr_component->name }| &
| EQ | &
| IT_KEY-{ lr_component->name } |.
APPEND lv_where TO lt_where_clause.
lv_and_clause = |AND |.
ENDLOOP.
IF it_key IS NOT INITIAL.
SELECT *
FROM (iv_table)
INTO CORRESPONDING FIELDS OF TABLE et_result
FOR ALL ENTRIES IN it_key
WHERE (lt_where_clause).
ENDIF.