mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +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.
|
METHOD add_tpool.
|
||||||
|
@ -333,14 +333,39 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
CONSTANTS lc_rpyty_force_off TYPE c LENGTH 1 VALUE '/'.
|
CONSTANTS lc_rpyty_force_off TYPE c LENGTH 1 VALUE '/'.
|
||||||
|
|
||||||
DATA: lv_name TYPE dwinactiv-obj_name,
|
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.
|
ls_dynpro LIKE LINE OF it_dynpros.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_field> TYPE rpy_dyfatc.
|
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
|
* ls_dynpro is changed by the function module, a field-symbol will cause
|
||||||
* the program to dump since it_dynpros cannot be changed
|
* the program to dump since it_dynpros cannot be changed
|
||||||
LOOP AT it_dynpros INTO ls_dynpro.
|
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
|
" todo: kept for compatibility, remove after grace period #3680
|
||||||
ls_dynpro-flow_logic = uncondense_flow(
|
ls_dynpro-flow_logic = uncondense_flow(
|
||||||
it_flow = ls_dynpro-flow_logic
|
it_flow = ls_dynpro-flow_logic
|
||||||
|
@ -411,6 +436,27 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
|
|
||||||
ENDLOOP.
|
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.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user