mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
Issue#1878 popup deleting msag (#1918)
* removed popup saving msag * fixed capitalization * refactored with variable prefixes * refactored exceptions and split methods also removed S messages. Previous code was mostly copy %26 paste of the original * Cleaned up * more cleanup
This commit is contained in:
parent
46da683d7b
commit
3c86342bef
|
@ -31,13 +31,20 @@ CLASS zcl_abapgit_object_msag DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
serialize_longtexts_msag
|
||||
IMPORTING it_t100 TYPE zcl_abapgit_object_msag=>tty_t100
|
||||
io_xml TYPE REF TO zcl_abapgit_xml_output
|
||||
RAISING zcx_abapgit_exception.
|
||||
RAISING zcx_abapgit_exception,
|
||||
delete_msgid IMPORTING iv_message_id TYPE arbgb,
|
||||
free_access_permission
|
||||
IMPORTING
|
||||
i_message_id TYPE arbgb,
|
||||
delete_documentation
|
||||
IMPORTING
|
||||
iv_message_id TYPE arbgb.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_MSAG IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_object_msag IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD deserialize_texts.
|
||||
|
@ -179,18 +186,63 @@ CLASS ZCL_ABAPGIT_OBJECT_MSAG IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
DATA: lv_t100a TYPE t100a,
|
||||
lv_frozen TYPE flag,
|
||||
lv_message_id TYPE arbgb,
|
||||
lv_access_granted TYPE abap_bool.
|
||||
|
||||
* parameter SUPPRESS_DIALOG doesnt exist in all versions
|
||||
CALL FUNCTION 'RS_DELETE_MESSAGE_ID'
|
||||
* parameter SUPPRESS_DIALOG doesnt exist in all versions of FM RS_DELETE_MESSAGE_ID
|
||||
* replaced with a copy
|
||||
lv_message_id = ms_item-obj_name.
|
||||
IF ms_item-obj_name EQ space.
|
||||
zcx_abapgit_exception=>raise( 'Error from (copy of) RS_DELETE_MESSAGE_ID' )."blank message id
|
||||
ENDIF.
|
||||
|
||||
SELECT SINGLE * FROM t100a INTO lv_t100a WHERE arbgb = ms_item-obj_name.
|
||||
IF sy-subrc NE 0.
|
||||
zcx_abapgit_exception=>raise( 'Error from (copy of) RS_DELETE_MESSAGE_ID' )."not found
|
||||
ENDIF.
|
||||
|
||||
CLEAR lv_frozen.
|
||||
CALL FUNCTION 'RS_ACCESS_PERMISSION'
|
||||
EXPORTING
|
||||
nachrichtenklasse = ms_item-obj_name
|
||||
authority_check = 'X'
|
||||
global_lock = 'X'
|
||||
mode = 'MODIFY'
|
||||
object = lv_message_id
|
||||
object_class = 'T100'
|
||||
IMPORTING
|
||||
frozen = lv_frozen
|
||||
EXCEPTIONS
|
||||
not_executed = 1
|
||||
not_found = 2
|
||||
no_permission = 3
|
||||
OTHERS = 4.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'Error from RS_DELETE_MESSAGE_ID' ).
|
||||
OTHERS = 1.
|
||||
|
||||
IF sy-subrc NE 0 OR lv_frozen NE space.
|
||||
zcx_abapgit_exception=>raise( 'Error from (copy of) RS_DELETE_MESSAGE_ID' )."can't access
|
||||
ENDIF.
|
||||
|
||||
lv_access_granted = abap_true.
|
||||
|
||||
CALL FUNCTION 'RS_CORR_INSERT'
|
||||
EXPORTING
|
||||
global_lock = 'X'
|
||||
object = lv_message_id
|
||||
object_class = 'MSAG'
|
||||
mode = 'D'
|
||||
EXCEPTIONS
|
||||
cancelled = 01
|
||||
permission_failure = 02.
|
||||
|
||||
IF sy-subrc NE 0.
|
||||
IF lv_access_granted = abap_true.
|
||||
free_access_permission( lv_message_id ).
|
||||
ENDIF.
|
||||
zcx_abapgit_exception=>raise( 'Error from (copy of) RS_DELETE_MESSAGE_ID' )."can't access
|
||||
ENDIF.
|
||||
|
||||
delete_msgid( lv_message_id ).
|
||||
|
||||
IF lv_access_granted = abap_true.
|
||||
free_access_permission( lv_message_id ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -365,4 +417,70 @@ CLASS ZCL_ABAPGIT_OBJECT_MSAG IMPLEMENTATION.
|
|||
serialize_texts( io_xml ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD delete_msgid.
|
||||
|
||||
delete_documentation( iv_message_id ).
|
||||
|
||||
DELETE FROM t100a WHERE arbgb = iv_message_id.
|
||||
IF sy-subrc = 0 OR sy-subrc = 4.
|
||||
CALL FUNCTION 'RS_TREE_OBJECT_PLACEMENT'
|
||||
EXPORTING
|
||||
object = iv_message_id
|
||||
operation = 'DELETE'
|
||||
program = space
|
||||
type = 'CN'.
|
||||
DELETE FROM t100o WHERE arbgb = iv_message_id.
|
||||
DELETE FROM t100t WHERE arbgb = iv_message_id. "#EC CI_NOFIRST
|
||||
DELETE FROM t100u WHERE arbgb = iv_message_id.
|
||||
DELETE FROM t100x WHERE arbgb = iv_message_id.
|
||||
DELETE FROM t100 WHERE arbgb = iv_message_id.
|
||||
ENDIF.
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD free_access_permission.
|
||||
CALL FUNCTION 'RS_ACCESS_PERMISSION'
|
||||
EXPORTING
|
||||
mode = 'FREE'
|
||||
object = i_message_id
|
||||
object_class = 'T100'.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD delete_documentation.
|
||||
DATA: lv_key_s TYPE dokhl-object.
|
||||
|
||||
CLEAR lv_key_s.
|
||||
CALL FUNCTION 'DOCU_OBJECT_NAME_CONCATENATE'
|
||||
EXPORTING
|
||||
docu_id = 'NA'
|
||||
element = iv_message_id
|
||||
addition = ' '
|
||||
IMPORTING
|
||||
object = lv_key_s
|
||||
EXCEPTIONS
|
||||
OTHERS = 0.
|
||||
|
||||
CALL FUNCTION 'DOKU_DELETE_ALL'
|
||||
EXPORTING
|
||||
doku_id = 'NA'
|
||||
doku_object = lv_key_s
|
||||
generic_use = 'X'
|
||||
suppress_authority = space
|
||||
suppress_enqueue = space
|
||||
suppress_transport = space
|
||||
EXCEPTIONS
|
||||
header_without_text = 01
|
||||
index_without_header = 02
|
||||
no_authority_for_devclass_xxxx = 03
|
||||
no_docu_found = 04
|
||||
object_is_already_enqueued = 05
|
||||
object_is_enqueued_by_corr = 06
|
||||
user_break = 07.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
Loading…
Reference in New Issue
Block a user