in src/zgoog_i_bqtr_gen_mass_cds_c01.prog.abap [0:0]
METHOD create_objects.
DATA: lv_sql_view(16) TYPE c,
lv_final_string TYPE string.
ev_ddl_source = gs_excel_data-cdsviewname.
DATA(lv_def_view) = 'define view'.
DATA(lv_sel_from) = 'as select from'.
DATA : lv_lb(1) TYPE c VALUE '{',
lv_rb(1) TYPE c VALUE '}',
lv_sqlviewdesc TYPE string.
SELECT SINGLE ddtext FROM dd02t INTO @ev_tabdesc WHERE tabname = @gs_excel_data-tablename AND ddlanguage = 'E'.
CONCATENATE ev_tabdesc 'CDS View' INTO ev_tabdesc SEPARATED BY space.
CONCATENATE ev_tabdesc 'SQL View' INTO lv_sqlviewdesc SEPARATED BY space.
CONCATENATE lv_sel_from gs_excel_data-tablename INTO DATA(lv_sel_table) SEPARATED BY space.
"prepare the sql view name
IF gs_excel_data-sqlviewname IS INITIAL.
CONCATENATE 'Z_' gs_excel_data-tablename '_SQL' INTO lv_sql_view.
ELSE.
lv_sql_view = gs_excel_data-sqlviewname.
ENDIF.
TRANSLATE lv_sql_view TO UPPER CASE.
CONCATENATE '@AbapCatalog.sqlViewName:' space '''' lv_sql_view '''' INTO DATA(lv_sqlview_ann).
DATA(lv_string1) = lv_sqlview_ann.
DATA : lv_excel_tabname(30) TYPE c.
lv_excel_tabname = gs_excel_data-tablename.
TRANSLATE lv_excel_tabname TO LOWER CASE.
IF p_old = abap_true.
"annotations for header , delta and extractor enablement
CONCATENATE cl_abap_char_utilities=>newline
'@AbapCatalog.compiler.compareFilter: true' cl_abap_char_utilities=>newline
'@AbapCatalog.preserveKey: true' cl_abap_char_utilities=>newline
'@AccessControl.authorizationCheck: #NOT_REQUIRED' cl_abap_char_utilities=>newline
'@EndUserText.label:' space '''' lv_sqlviewdesc '''' cl_abap_char_utilities=>newline INTO DATA(lv_string2) .
CONCATENATE 'define view' gs_excel_data-cdsviewname 'as select from' gs_excel_data-tablename INTO DATA(lv_string4) SEPARATED BY space.
ELSE.
CLEAR: lv_string1.
CONCATENATE '@EndUserText.label:' space '''' lv_sqlviewdesc '''' cl_abap_char_utilities=>newline INTO lv_string2 .
CONCATENATE 'define root view entity' gs_excel_data-cdsviewname 'as select from' gs_excel_data-tablename cl_abap_char_utilities=>newline INTO lv_string4 SEPARATED BY space.
ENDIF.
DATA(lv_string3) = '@Analytics.dataExtraction.enabled: true' && cl_abap_char_utilities=>newline &&
'@Analytics.dataCategory: #FACT' && cl_abap_char_utilities=>newline &&
'@Analytics.dataExtraction.delta.changeDataCapture.automatic: true' && cl_abap_char_utilities=>newline.
CONCATENATE lv_lb gv_keyfieldlist INTO DATA(lv_string5) SEPARATED BY space.
CONCATENATE gv_nonkeyfieldlist lv_rb INTO DATA(lv_string6) SEPARATED BY space.
TRANSLATE lv_string5 TO LOWER CASE.
TRANSLATE lv_string6 TO LOWER CASE.
"concatenate different sections into a single string
CONCATENATE lv_string1 lv_string2 lv_string3 lv_string4 lv_string5 lv_string6 INTO ev_final_string SEPARATED BY space.
ev_sql_view = lv_sql_view.