mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
Remove obsolete screens on PROG deserialize (#5075)
* Remove obsolete screens on PROG deserialize * remove commented code * align RS_SCRP_DELETE params Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
ffbd178318
commit
d103d2fb2e
|
@ -195,7 +195,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_OBJECTS_PROGRAM IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD add_tpool.
|
||||
|
@ -333,14 +333,39 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
|||
CONSTANTS lc_rpyty_force_off TYPE c LENGTH 1 VALUE '/'.
|
||||
|
||||
DATA: lv_name TYPE dwinactiv-obj_name,
|
||||
lt_d020s_to_delete TYPE TABLE OF d020s,
|
||||
ls_d020s LIKE LINE OF lt_d020s_to_delete,
|
||||
ls_dynpro LIKE LINE OF it_dynpros.
|
||||
|
||||
FIELD-SYMBOLS: <ls_field> TYPE rpy_dyfatc.
|
||||
|
||||
" Delete DYNPROs which are not in the list
|
||||
CALL FUNCTION 'RS_SCREEN_LIST'
|
||||
EXPORTING
|
||||
dynnr = ''
|
||||
progname = ms_item-obj_name
|
||||
TABLES
|
||||
dynpros = lt_d020s_to_delete
|
||||
EXCEPTIONS
|
||||
not_found = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc = 2.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
SORT lt_d020s_to_delete BY dnum ASCENDING.
|
||||
|
||||
* ls_dynpro is changed by the function module, a field-symbol will cause
|
||||
* the program to dump since it_dynpros cannot be changed
|
||||
LOOP AT it_dynpros INTO ls_dynpro.
|
||||
|
||||
READ TABLE lt_d020s_to_delete WITH KEY dnum = ls_dynpro-header-screen
|
||||
TRANSPORTING NO FIELDS
|
||||
BINARY SEARCH.
|
||||
IF sy-subrc = 0.
|
||||
DELETE lt_d020s_to_delete INDEX sy-tabix.
|
||||
ENDIF.
|
||||
|
||||
" todo: kept for compatibility, remove after grace period #3680
|
||||
ls_dynpro-flow_logic = uncondense_flow(
|
||||
it_flow = ls_dynpro-flow_logic
|
||||
|
@ -411,6 +436,27 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
|||
|
||||
ENDLOOP.
|
||||
|
||||
" Delete obsolete screens
|
||||
LOOP AT lt_d020s_to_delete INTO ls_d020s.
|
||||
|
||||
CALL FUNCTION 'RS_SCRP_DELETE'
|
||||
EXPORTING
|
||||
dynnr = ls_d020s-dnum
|
||||
progname = ms_item-obj_name
|
||||
with_popup = abap_false
|
||||
EXCEPTIONS
|
||||
enqueued_by_user = 1
|
||||
enqueue_system_failure = 2
|
||||
not_executed = 3
|
||||
not_exists = 4
|
||||
no_modify_permission = 5
|
||||
popup_canceled = 6.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user