in src/zgoog_i_bqtr_gen_mass_cds_c01.prog.abap [0:0]
METHOD prepare_data.
DATA : lv_lines TYPE i.
CLEAR: lv_lines, ev_keyfieldlist, ev_nonkeyfieldlist.
IF sy-subrc = 0 AND gt_dd03l_extract[] IS NOT INITIAL.
CLEAR : ev_keyfieldlist,ev_nonkeyfieldlist, lv_lines.
DESCRIBE TABLE gt_dd03l_extract LINES lv_lines.
LOOP AT gt_dd03l_extract INTO gs_dd03l_extract WHERE fieldname(1) <> '.'.
DATA(lv_alias) = get_field_alias( gs_dd03l_extract ).
IF gs_dd03l_extract-keyflag = 'X'.
IF gs_dd03l_extract-fieldname = 'MANDT' AND ( p_old = abap_false OR p_mandt = abap_false ).
" Skip MANDT for root view entities as MANDT is not supported.
" Skip MANDT if mandt is excluded.
CONTINUE.
ELSEIF gs_dd03l_extract-fieldname = 'MANDT' AND p_old = abap_true.
IF sy-tabix <> lv_lines.
CONCATENATE ev_keyfieldlist 'key' gs_dd03l_extract-fieldname lv_alias ',' cl_abap_char_utilities=>newline INTO ev_keyfieldlist SEPARATED BY space.
ELSE.
CONCATENATE ev_keyfieldlist 'key' gs_dd03l_extract-fieldname lv_alias ' ' cl_abap_char_utilities=>newline INTO ev_keyfieldlist SEPARATED BY space.
ENDIF.
ELSE.
IF sy-tabix <> lv_lines.
CONCATENATE ev_keyfieldlist 'key' gs_dd03l_extract-fieldname lv_alias ',' cl_abap_char_utilities=>newline INTO ev_keyfieldlist SEPARATED BY space.
ELSE.
CONCATENATE ev_keyfieldlist 'key' gs_dd03l_extract-fieldname lv_alias ' ' cl_abap_char_utilities=>newline INTO ev_keyfieldlist SEPARATED BY space.
ENDIF.
ENDIF.
ELSE.
IF sy-tabix <> lv_lines.
CONCATENATE ev_nonkeyfieldlist gs_dd03l_extract-fieldname lv_alias ',' cl_abap_char_utilities=>newline INTO ev_nonkeyfieldlist SEPARATED BY space.
ELSE .
CONCATENATE ev_nonkeyfieldlist gs_dd03l_extract-fieldname lv_alias ' ' cl_abap_char_utilities=>newline INTO ev_nonkeyfieldlist SEPARATED BY space.
ENDIF.
ENDIF.
CLEAR gs_dd03l_extract.
ENDLOOP.
ENDIF.