From cd88ec6c786778535a79d8a4b731d27f796e16a2 Mon Sep 17 00:00:00 2001 From: larshp Date: Thu, 30 Mar 2017 06:45:39 +0000 Subject: [PATCH] fix deleting db table with contents #695 --- src/zabapgit_object_tabl.prog.abap | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/zabapgit_object_tabl.prog.abap b/src/zabapgit_object_tabl.prog.abap index de2f10201..04d3f8f90 100644 --- a/src/zabapgit_object_tabl.prog.abap +++ b/src/zabapgit_object_tabl.prog.abap @@ -99,14 +99,35 @@ CLASS lcl_object_tabl IMPLEMENTATION. METHOD lif_object~delete. - DATA: lv_objname TYPE rsedd0-ddobjname. + DATA: lv_objname TYPE rsedd0-ddobjname, + lv_tabclass TYPE dd02l-tabclass, + lv_foo TYPE c LENGTH 1, + lv_no_ask TYPE abap_bool, + lr_data TYPE REF TO data. + + FIELD-SYMBOLS: TYPE any. lv_objname = ms_item-obj_name. + lv_no_ask = abap_true. + SELECT SINGLE tabclass FROM dd02l INTO lv_tabclass + WHERE tabname = ms_item-obj_name + AND as4local = 'A' + AND as4vers = '0000'. + IF sy-subrc = 0 AND lv_tabclass = 'TRANSP'. +* it cannot delete table with table wihtout asking + CREATE DATA lr_data TYPE (lv_objname). + ASSIGN lr_data->* TO . + SELECT SINGLE * FROM (lv_objname) INTO . + IF sy-subrc = 0. + lv_no_ask = abap_false. + ENDIF. + ENDIF. + CALL FUNCTION 'RS_DD_DELETE_OBJ' EXPORTING - no_ask = abap_true + no_ask = lv_no_ask objname = lv_objname objtype = 'T' EXCEPTIONS