mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
SUSO: Downport delete to 702
This commit is contained in:
parent
4f795f5a88
commit
9e0161f097
|
@ -16,13 +16,20 @@ CLASS zcl_abapgit_object_suso DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
delete_documentation
|
delete_documentation
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception,
|
||||||
|
|
||||||
|
pre_check
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_suso IMPLEMENTATION.
|
CLASS zcl_abapgit_object_suso IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
|
||||||
super->constructor( is_item = is_item
|
super->constructor( is_item = is_item
|
||||||
|
@ -32,18 +39,208 @@ CLASS zcl_abapgit_object_suso IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD zif_abapgit_object~has_changed_since.
|
|
||||||
rv_changed = abap_true.
|
METHOD delete_documentation.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lv_docu_obj TYPE dokhl-object,
|
||||||
|
lv_dummy TYPE sy-langu.
|
||||||
|
|
||||||
|
lv_docu_obj = mv_objectname.
|
||||||
|
|
||||||
|
SELECT SINGLE langu
|
||||||
|
FROM dokil INTO lv_dummy
|
||||||
|
WHERE id = 'UO' "#EC CI_GENBUFF
|
||||||
|
AND object = lv_docu_obj.
|
||||||
|
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
|
||||||
|
CALL FUNCTION 'DOKU_DELETE_ALL'
|
||||||
|
EXPORTING
|
||||||
|
doku_id = 'UO'
|
||||||
|
doku_object = lv_docu_obj
|
||||||
|
suppress_transport = space
|
||||||
|
EXCEPTIONS
|
||||||
|
header_without_text = 1
|
||||||
|
index_without_header = 2
|
||||||
|
no_authority_for_devclass_xxxx = 3
|
||||||
|
no_docu_found = 4
|
||||||
|
object_is_already_enqueued = 5
|
||||||
|
object_is_enqueued_by_corr = 6
|
||||||
|
techn_enqueue_problem = 7
|
||||||
|
user_break = 8
|
||||||
|
OTHERS = 9.
|
||||||
|
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
zcx_abapgit_exception=>raise_t100( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD pre_check.
|
||||||
|
|
||||||
|
CONSTANTS:
|
||||||
|
co_act_delete TYPE activ_auth VALUE '06'.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lv_act_head TYPE activ_auth,
|
||||||
|
lv_dummy TYPE string,
|
||||||
|
lo_suso TYPE REF TO object,
|
||||||
|
lv_failed TYPE abap_bool,
|
||||||
|
lv_suso_collect_in_cts TYPE i,
|
||||||
|
lv_clskey TYPE seoclskey.
|
||||||
|
|
||||||
|
" Downport: CL_SUSO_GEN doesn't exist in 702
|
||||||
|
lv_clskey-clsname = |CL_SUSO_GEN|.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SEO_CLASS_EXISTENCE_CHECK'
|
||||||
|
EXPORTING
|
||||||
|
clskey = lv_clskey
|
||||||
|
EXCEPTIONS
|
||||||
|
not_specified = 1
|
||||||
|
not_existing = 2
|
||||||
|
is_interface = 3
|
||||||
|
no_text = 4
|
||||||
|
inconsistent = 5
|
||||||
|
OTHERS = 6.
|
||||||
|
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
|
||||||
|
" so these check are not executed in 702
|
||||||
|
|
||||||
|
CREATE OBJECT lo_suso
|
||||||
|
TYPE
|
||||||
|
('CL_SUSO_GEN').
|
||||||
|
|
||||||
|
CALL METHOD lo_suso->('SUSO_LOAD_FROM_DB')
|
||||||
|
EXPORTING
|
||||||
|
id_object = mv_objectname
|
||||||
|
RECEIVING
|
||||||
|
ed_failed = lv_failed.
|
||||||
|
|
||||||
|
IF lv_failed = abap_true.
|
||||||
|
" Object & does not exist; choose an existing object
|
||||||
|
MESSAGE s111(01) WITH mv_objectname INTO lv_dummy.
|
||||||
|
zcx_abapgit_exception=>raise_t100( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CALL METHOD lo_suso->('GET_SUSO_EDIT_MODE')
|
||||||
|
EXPORTING
|
||||||
|
id_object = mv_objectname
|
||||||
|
id_planed_act = co_act_delete
|
||||||
|
IMPORTING
|
||||||
|
ed_mode_head = lv_act_head.
|
||||||
|
|
||||||
|
IF lv_act_head <> co_act_delete.
|
||||||
|
zcx_abapgit_exception=>raise( |AUTH { mv_objectname }: Delete not allowed| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CALL METHOD lo_suso->('SUSO_COLLECT_IN_CTS')
|
||||||
|
EXPORTING
|
||||||
|
id_object = mv_objectname
|
||||||
|
RECEIVING
|
||||||
|
ed_result = lv_suso_collect_in_cts.
|
||||||
|
|
||||||
|
IF lv_suso_collect_in_cts IS NOT INITIAL.
|
||||||
|
zcx_abapgit_exception=>raise( |AUTH { mv_objectname }: Cannot delete| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
METHOD zif_abapgit_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD zif_abapgit_object~get_metadata.
|
|
||||||
rs_metadata = get_metadata( ).
|
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||||
|
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_object~delete.
|
||||||
|
|
||||||
|
" FM SUSR_DELETE_OBJECT calls the UI. Therefore we reimplement it here.
|
||||||
|
" As the class CL_SUSO_GEN isn't present in 702, we call dynamically and
|
||||||
|
" skip the pre checks on 702 system. That seems ok.
|
||||||
|
|
||||||
|
pre_check( ).
|
||||||
|
|
||||||
|
delete_documentation( ).
|
||||||
|
|
||||||
|
DELETE FROM tobj WHERE objct = mv_objectname.
|
||||||
|
DELETE FROM tobjt WHERE object = mv_objectname.
|
||||||
|
DELETE FROM tactz WHERE brobj = mv_objectname.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SUPV_DELETE_OBJECT_ASSIGNMENTS'
|
||||||
|
EXPORTING
|
||||||
|
object_name = mv_objectname
|
||||||
|
all_releases = abap_true.
|
||||||
|
|
||||||
|
CALL FUNCTION 'RS_TREE_OBJECT_PLACEMENT'
|
||||||
|
EXPORTING
|
||||||
|
object = mv_objectname
|
||||||
|
type = 'SUSO'
|
||||||
|
operation = 'DELETE'.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_object~deserialize.
|
||||||
|
* see function group SUSA
|
||||||
|
|
||||||
|
DATA: lv_objectname TYPE trobj_name,
|
||||||
|
ls_tobj TYPE tobj,
|
||||||
|
ls_tobjt TYPE tobjt,
|
||||||
|
ls_tobjvorflg TYPE tobjvorflg,
|
||||||
|
lt_tactz TYPE TABLE OF tactz,
|
||||||
|
lt_tobjvordat TYPE TABLE OF tobjvordat,
|
||||||
|
lt_tobjvor TYPE TABLE OF tobjvor.
|
||||||
|
|
||||||
|
|
||||||
|
ASSERT NOT ms_item-obj_name IS INITIAL.
|
||||||
|
|
||||||
|
io_xml->read( EXPORTING iv_name = 'TOBJ'
|
||||||
|
CHANGING cg_data = ls_tobj ).
|
||||||
|
ls_tobj-bname = sy-uname.
|
||||||
|
io_xml->read( EXPORTING iv_name = 'TOBJT'
|
||||||
|
CHANGING cg_data = ls_tobjt ).
|
||||||
|
io_xml->read( EXPORTING iv_name = 'TOBJVORFLG'
|
||||||
|
CHANGING cg_data = ls_tobjvorflg ).
|
||||||
|
io_xml->read( EXPORTING iv_name = 'TACTZ'
|
||||||
|
CHANGING cg_data = lt_tactz ).
|
||||||
|
io_xml->read( EXPORTING iv_name = 'TOBJVORDAT'
|
||||||
|
CHANGING cg_data = lt_tobjvordat ).
|
||||||
|
io_xml->read( EXPORTING iv_name = 'TOBJVOR'
|
||||||
|
CHANGING cg_data = lt_tobjvor ).
|
||||||
|
|
||||||
|
tadir_insert( iv_package ).
|
||||||
|
|
||||||
|
lv_objectname = mv_objectname.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SUSR_COMMEDITCHECK'
|
||||||
|
EXPORTING
|
||||||
|
objectname = lv_objectname
|
||||||
|
transobjecttype = 'O'.
|
||||||
|
|
||||||
|
MODIFY tobj FROM ls_tobj. "#EC CI_SUBRC
|
||||||
|
MODIFY tobjt FROM ls_tobjt. "#EC CI_SUBRC
|
||||||
|
MODIFY tobjvorflg FROM ls_tobjvorflg. "#EC CI_SUBRC
|
||||||
|
DELETE FROM tactz WHERE brobj = ms_item-obj_name. "#EC CI_SUBRC
|
||||||
|
INSERT tactz FROM TABLE lt_tactz. "#EC CI_SUBRC
|
||||||
|
DELETE FROM tobjvordat WHERE objct = ms_item-obj_name. "#EC CI_SUBRC
|
||||||
|
INSERT tobjvordat FROM TABLE lt_tobjvordat. "#EC CI_SUBRC
|
||||||
|
DELETE FROM tobjvor WHERE objct = ms_item-obj_name. "#EC CI_SUBRC
|
||||||
|
INSERT tobjvor FROM TABLE lt_tobjvor. "#EC CI_SUBRC
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~exists.
|
METHOD zif_abapgit_object~exists.
|
||||||
|
|
||||||
DATA: lv_objct TYPE tobj-objct.
|
DATA: lv_objct TYPE tobj-objct.
|
||||||
|
@ -55,6 +252,33 @@ CLASS zcl_abapgit_object_suso IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_object~get_metadata.
|
||||||
|
rs_metadata = get_metadata( ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_object~is_locked.
|
||||||
|
|
||||||
|
rv_is_locked = abap_false.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_object~jump.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SUSR_SHOW_OBJECT'
|
||||||
|
EXPORTING
|
||||||
|
object = mv_objectname.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~serialize.
|
METHOD zif_abapgit_object~serialize.
|
||||||
|
|
||||||
DATA: ls_tobj TYPE tobj,
|
DATA: ls_tobj TYPE tobj,
|
||||||
|
@ -109,183 +333,4 @@ CLASS zcl_abapgit_object_suso IMPLEMENTATION.
|
||||||
iv_name = 'TOBJVOR' ).
|
iv_name = 'TOBJVOR' ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD zif_abapgit_object~deserialize.
|
|
||||||
* see function group SUSA
|
|
||||||
|
|
||||||
DATA: lv_objectname TYPE trobj_name,
|
|
||||||
ls_tobj TYPE tobj,
|
|
||||||
ls_tobjt TYPE tobjt,
|
|
||||||
ls_tobjvorflg TYPE tobjvorflg,
|
|
||||||
lt_tactz TYPE TABLE OF tactz,
|
|
||||||
lt_tobjvordat TYPE TABLE OF tobjvordat,
|
|
||||||
lt_tobjvor TYPE TABLE OF tobjvor.
|
|
||||||
|
|
||||||
|
|
||||||
ASSERT NOT ms_item-obj_name IS INITIAL.
|
|
||||||
|
|
||||||
io_xml->read( EXPORTING iv_name = 'TOBJ'
|
|
||||||
CHANGING cg_data = ls_tobj ).
|
|
||||||
ls_tobj-bname = sy-uname.
|
|
||||||
io_xml->read( EXPORTING iv_name = 'TOBJT'
|
|
||||||
CHANGING cg_data = ls_tobjt ).
|
|
||||||
io_xml->read( EXPORTING iv_name = 'TOBJVORFLG'
|
|
||||||
CHANGING cg_data = ls_tobjvorflg ).
|
|
||||||
io_xml->read( EXPORTING iv_name = 'TACTZ'
|
|
||||||
CHANGING cg_data = lt_tactz ).
|
|
||||||
io_xml->read( EXPORTING iv_name = 'TOBJVORDAT'
|
|
||||||
CHANGING cg_data = lt_tobjvordat ).
|
|
||||||
io_xml->read( EXPORTING iv_name = 'TOBJVOR'
|
|
||||||
CHANGING cg_data = lt_tobjvor ).
|
|
||||||
|
|
||||||
tadir_insert( iv_package ).
|
|
||||||
|
|
||||||
lv_objectname = mv_objectname.
|
|
||||||
|
|
||||||
CALL FUNCTION 'SUSR_COMMEDITCHECK'
|
|
||||||
EXPORTING
|
|
||||||
objectname = lv_objectname
|
|
||||||
transobjecttype = 'O'.
|
|
||||||
|
|
||||||
MODIFY tobj FROM ls_tobj. "#EC CI_SUBRC
|
|
||||||
MODIFY tobjt FROM ls_tobjt. "#EC CI_SUBRC
|
|
||||||
MODIFY tobjvorflg FROM ls_tobjvorflg. "#EC CI_SUBRC
|
|
||||||
DELETE FROM tactz WHERE brobj = ms_item-obj_name. "#EC CI_SUBRC
|
|
||||||
INSERT tactz FROM TABLE lt_tactz. "#EC CI_SUBRC
|
|
||||||
DELETE FROM tobjvordat WHERE objct = ms_item-obj_name. "#EC CI_SUBRC
|
|
||||||
INSERT tobjvordat FROM TABLE lt_tobjvordat. "#EC CI_SUBRC
|
|
||||||
DELETE FROM tobjvor WHERE objct = ms_item-obj_name. "#EC CI_SUBRC
|
|
||||||
INSERT tobjvor FROM TABLE lt_tobjvor. "#EC CI_SUBRC
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~delete.
|
|
||||||
|
|
||||||
" FM SUSR_DELETE_OBJECT calls the UI. Therefore we reimplement it here.
|
|
||||||
|
|
||||||
CONSTANTS:
|
|
||||||
co_act_delete TYPE activ_auth VALUE '06'.
|
|
||||||
|
|
||||||
DATA:
|
|
||||||
lv_act_head TYPE activ_auth,
|
|
||||||
lv_dummy TYPE string,
|
|
||||||
lo_suso TYPE REF TO object,
|
|
||||||
lv_failed TYPE abap_bool,
|
|
||||||
lv_suso_collect_in_cts TYPE i.
|
|
||||||
|
|
||||||
" Downport: CL_SUSO_GEN doesn't exist in 702
|
|
||||||
CREATE OBJECT lo_suso
|
|
||||||
TYPE
|
|
||||||
('CL_SUSO_GEN').
|
|
||||||
|
|
||||||
CALL METHOD lo_suso->('SUSO_LOAD_FROM_DB')
|
|
||||||
EXPORTING
|
|
||||||
id_object = mv_objectname
|
|
||||||
RECEIVING
|
|
||||||
ed_failed = lv_failed.
|
|
||||||
|
|
||||||
IF lv_failed = abap_true.
|
|
||||||
" Object & does not exist; choose an existing object
|
|
||||||
MESSAGE s111(01) WITH mv_objectname INTO lv_dummy.
|
|
||||||
zcx_abapgit_exception=>raise_t100( ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CALL METHOD lo_suso->('GET_SUSO_EDIT_MODE')
|
|
||||||
EXPORTING
|
|
||||||
id_object = mv_objectname
|
|
||||||
id_planed_act = co_act_delete
|
|
||||||
IMPORTING
|
|
||||||
ed_mode_head = lv_act_head.
|
|
||||||
|
|
||||||
IF lv_act_head <> co_act_delete.
|
|
||||||
zcx_abapgit_exception=>raise( |AUTH { mv_objectname }: Delete not allowed| ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CALL METHOD lo_suso->('SUSO_COLLECT_IN_CTS')
|
|
||||||
EXPORTING
|
|
||||||
id_object = mv_objectname
|
|
||||||
RECEIVING
|
|
||||||
ed_result = lv_suso_collect_in_cts.
|
|
||||||
|
|
||||||
IF lv_suso_collect_in_cts IS NOT INITIAL.
|
|
||||||
RETURN.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
delete_documentation( ).
|
|
||||||
|
|
||||||
DELETE FROM tobj WHERE objct = mv_objectname.
|
|
||||||
DELETE FROM tobjt WHERE object = mv_objectname.
|
|
||||||
DELETE FROM tactz WHERE brobj = mv_objectname.
|
|
||||||
|
|
||||||
CALL FUNCTION 'SUPV_DELETE_OBJECT_ASSIGNMENTS'
|
|
||||||
EXPORTING
|
|
||||||
object_name = mv_objectname
|
|
||||||
all_releases = abap_true.
|
|
||||||
|
|
||||||
CALL FUNCTION 'RS_TREE_OBJECT_PLACEMENT'
|
|
||||||
EXPORTING
|
|
||||||
object = mv_objectname
|
|
||||||
type = 'SUSO'
|
|
||||||
operation = 'DELETE'.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD delete_documentation.
|
|
||||||
|
|
||||||
DATA:
|
|
||||||
lv_docu_obj TYPE dokhl-object,
|
|
||||||
lv_dummy TYPE sy-langu.
|
|
||||||
|
|
||||||
lv_docu_obj = mv_objectname.
|
|
||||||
|
|
||||||
SELECT SINGLE langu
|
|
||||||
FROM dokil INTO lv_dummy
|
|
||||||
WHERE id = 'UO' "#EC CI_GENBUFF
|
|
||||||
AND object = lv_docu_obj.
|
|
||||||
|
|
||||||
IF sy-subrc = 0.
|
|
||||||
|
|
||||||
CALL FUNCTION 'DOKU_DELETE_ALL'
|
|
||||||
EXPORTING
|
|
||||||
doku_id = 'UO'
|
|
||||||
doku_object = lv_docu_obj
|
|
||||||
suppress_transport = space
|
|
||||||
EXCEPTIONS
|
|
||||||
header_without_text = 1
|
|
||||||
index_without_header = 2
|
|
||||||
no_authority_for_devclass_xxxx = 3
|
|
||||||
no_docu_found = 4
|
|
||||||
object_is_already_enqueued = 5
|
|
||||||
object_is_enqueued_by_corr = 6
|
|
||||||
techn_enqueue_problem = 7
|
|
||||||
user_break = 8
|
|
||||||
OTHERS = 9.
|
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
zcx_abapgit_exception=>raise_t100( ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~jump.
|
|
||||||
|
|
||||||
CALL FUNCTION 'SUSR_SHOW_OBJECT'
|
|
||||||
EXPORTING
|
|
||||||
object = mv_objectname.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
|
||||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~is_locked.
|
|
||||||
|
|
||||||
rv_is_locked = abap_false.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user