mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
TABL: Skip data check for GTTs (#4075)
* TABL: Skip data check for GTT fixes #4074 * undo case change * TABL: use fm DD_EXISTS_DATA for data check * remove formatting change * Data existence check only for DB tables Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
46f504a0e8
commit
d14393dac5
|
@ -99,7 +99,10 @@ CLASS zcl_abapgit_object_tabl DEFINITION
|
||||||
deserialize_texts
|
deserialize_texts
|
||||||
IMPORTING io_xml TYPE REF TO zif_abapgit_xml_input
|
IMPORTING io_xml TYPE REF TO zif_abapgit_xml_input
|
||||||
is_dd02v TYPE dd02v
|
is_dd02v TYPE dd02v
|
||||||
RAISING zcx_abapgit_exception.
|
RAISING zcx_abapgit_exception,
|
||||||
|
is_db_table_category
|
||||||
|
IMPORTING iv_tabclass TYPE dd02l-tabclass
|
||||||
|
RETURNING VALUE(rv_is_db_table_type) TYPE dd02l-tabclass.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -572,12 +575,13 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
||||||
METHOD zif_abapgit_object~delete.
|
METHOD zif_abapgit_object~delete.
|
||||||
|
|
||||||
DATA: lv_objname TYPE rsedd0-ddobjname,
|
DATA: lv_objname TYPE rsedd0-ddobjname,
|
||||||
lv_tabclass TYPE dd02l-tabclass,
|
|
||||||
lv_no_ask TYPE abap_bool,
|
lv_no_ask TYPE abap_bool,
|
||||||
lv_subrc TYPE sy-subrc,
|
lv_subrc TYPE sy-subrc,
|
||||||
lr_data TYPE REF TO data.
|
BEGIN OF ls_dd02l,
|
||||||
|
tabname TYPE dd02l-tabname,
|
||||||
FIELD-SYMBOLS: <lg_data> TYPE any.
|
tabclass TYPE dd02l-tabclass,
|
||||||
|
sqltab TYPE dd02l-sqltab,
|
||||||
|
END OF ls_dd02l.
|
||||||
|
|
||||||
IF zif_abapgit_object~exists( ) = abap_false.
|
IF zif_abapgit_object~exists( ) = abap_false.
|
||||||
" Proxies e.g. delete on its own, nothing todo here then.
|
" Proxies e.g. delete on its own, nothing todo here then.
|
||||||
|
@ -589,27 +593,31 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
||||||
IF delete_idoc_segment( ) = abap_false.
|
IF delete_idoc_segment( ) = abap_false.
|
||||||
|
|
||||||
lv_no_ask = abap_true.
|
lv_no_ask = abap_true.
|
||||||
SELECT SINGLE tabclass FROM dd02l INTO lv_tabclass
|
SELECT SINGLE tabname tabclass sqltab FROM dd02l
|
||||||
|
INTO CORRESPONDING FIELDS OF ls_dd02l
|
||||||
WHERE tabname = ms_item-obj_name
|
WHERE tabname = ms_item-obj_name
|
||||||
AND as4local = 'A'
|
AND as4local = 'A'
|
||||||
AND as4vers = '0000'.
|
AND as4vers = '0000'.
|
||||||
IF sy-subrc = 0 AND lv_tabclass = 'TRANSP'.
|
IF sy-subrc = 0 AND is_db_table_category( ls_dd02l-tabclass ) = abap_true.
|
||||||
|
|
||||||
" Avoid dump in dynamic SELECT in case the table does not exist on database
|
CALL FUNCTION 'DD_EXISTS_DATA'
|
||||||
CALL FUNCTION 'DB_EXISTS_TABLE'
|
|
||||||
EXPORTING
|
EXPORTING
|
||||||
tabname = lv_objname
|
reftab = ls_dd02l-sqltab
|
||||||
|
tabclass = ls_dd02l-tabclass
|
||||||
|
tabname = ls_dd02l-tabname
|
||||||
IMPORTING
|
IMPORTING
|
||||||
subrc = lv_subrc.
|
subrc = lv_subrc
|
||||||
IF lv_subrc = 0.
|
EXCEPTIONS
|
||||||
" it cannot delete table with data without asking
|
missing_reftab = 1
|
||||||
CREATE DATA lr_data TYPE (lv_objname).
|
sql_error = 2
|
||||||
ASSIGN lr_data->* TO <lg_data>.
|
buffer_overflow = 3
|
||||||
SELECT SINGLE * FROM (lv_objname) INTO <lg_data>.
|
unknown_error = 4
|
||||||
IF sy-subrc = 0.
|
OTHERS = 5.
|
||||||
|
|
||||||
|
IF sy-subrc = 0 AND lv_subrc = 0.
|
||||||
lv_no_ask = abap_false.
|
lv_no_ask = abap_false.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
delete_ddic( iv_objtype = 'T'
|
delete_ddic( iv_objtype = 'T'
|
||||||
|
@ -981,4 +989,15 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
||||||
ig_data = ls_extras ).
|
ig_data = ls_extras ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD is_db_table_category.
|
||||||
|
|
||||||
|
" values from domain TABCLASS
|
||||||
|
rv_is_db_table_type = boolc( iv_tabclass = 'TRANSP'
|
||||||
|
OR iv_tabclass = 'CLUSTER'
|
||||||
|
OR iv_tabclass = 'POOL' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user