prepare_data

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.