in src/zgoog_i_bqtr_gen_mass_cds_c01.prog.abap [0:0]
METHOD create_cds.
DATA: lv_putstate TYPE objstate VALUE 'N',
lv_name TYPE ddlname,
lv_devclass TYPE devclass,
lv_ddl_source TYPE ddlname,
ls_ddddlsrcv TYPE ddddlsrcv.
DATA(lref_dd_ddl_handler) = cl_dd_ddl_handler_factory=>create( ).
CLEAR : lv_ddl_source,lv_devclass.
DATA:lo_header TYPE REF TO cl_salv_form_layout_grid,
lo_h_label TYPE REF TO cl_salv_form_label.
lv_ddl_source = gs_excel_data-cdsviewname.
CREATE OBJECT lo_header.
CLEAR: ls_ddddlsrcv.
ls_ddddlsrcv-source = iv_final_string.
ls_ddddlsrcv-ddtext = iv_tabdesc.
ls_ddddlsrcv-ddlanguage = sy-langu.
ls_ddddlsrcv-ddlname = iv_ddl_source.
TRY.
CALL METHOD lref_dd_ddl_handler->save
EXPORTING
name = lv_ddl_source
put_state = lv_putstate
ddddlsrcv_wa = ls_ddddlsrcv.
CATCH cx_dd_ddl_save.
ENDTRY.
IF sy-subrc = 0.
TRY.
CALL METHOD lref_dd_ddl_handler->activate
EXPORTING
name = lv_ddl_source.
CATCH cx_dd_ddl_activate.
ENDTRY.
ENDIF.
DATA : lv_subrc TYPE sysubrc.
CLEAR lv_subrc.
TRY.
CALL METHOD lref_dd_ddl_handler->write_tadir
EXPORTING
objectname = gs_excel_data-cdsviewname
devclass = p_pkg "'ZCDS_WRAPPER_DS'
prid = -1
RECEIVING
rc = lv_subrc.
CATCH cx_dd_ddl_save. " Exception While Writing TADIR Entry
ENDTRY.
DATA : lv_order TYPE trkorr,
lv_task TYPE trkorr,
lv_subrc2 TYPE sysubrc,
lv_subrc3 TYPE sysubrc.
CLEAR: lv_order, lv_task, lv_subrc2, lv_subrc3.
IF lv_subrc = 0.
CALL METHOD lref_dd_ddl_handler->write_trkorr
EXPORTING
trkorr = p_tr
objectname = gs_excel_data-cdsviewname
prid = -1
IMPORTING
order = lv_order
task = lv_task
rc = lv_subrc2.
IF lv_subrc2 = 0 AND iv_sql_view IS NOT INITIAL.
CALL METHOD lref_dd_ddl_handler->write_trkorr
EXPORTING
trkorr = p_tr
objectname = iv_sql_view
prid = -1
IMPORTING
order = lv_order
task = lv_task
rc = lv_subrc3.
ENDIF.
CLEAR: gs_output.
IF lv_subrc2 = 0. "AND lv_subrc2 = 0.
gs_output-tablename = gs_excel_data-tablename.
gs_output-cdsviewname = gs_excel_data-cdsviewname.
gs_output-sqlviewname = iv_sql_view.
gs_output-package = p_pkg.
gs_output-transport = p_tr.
gs_output-status = 'CDS view Created'.
ELSE.
gs_output-tablename = gs_excel_data-tablename.
gs_output-cdsviewname = gs_excel_data-cdsviewname.
gs_output-sqlviewname = iv_sql_view.
gs_output-package = p_pkg.
gs_output-transport = p_tr.
gs_output-status = 'Some error occured'.
ENDIF.
IF p_old = abap_false.
CLEAR: gs_output-sqlviewname.
ENDIF.
APPEND gs_output TO gt_output.
ENDIF.
CLEAR gs_output.