From 5ee49e33e8d907d4f7a3bc9969e0da606ac55872 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Mon, 4 Nov 2024 04:11:38 -0500 Subject: [PATCH] PROG: Store flow logic as separate ABAP files (#7066) Co-authored-by: Lars Hvam Co-authored-by: Marc Bernard --- .../zcl_abapgit_objects_program.clas.abap | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/objects/zcl_abapgit_objects_program.clas.abap b/src/objects/zcl_abapgit_objects_program.clas.abap index 093c1fa19..fc75e7f71 100644 --- a/src/objects/zcl_abapgit_objects_program.clas.abap +++ b/src/objects/zcl_abapgit_objects_program.clas.abap @@ -131,6 +131,8 @@ CLASS zcl_abapgit_objects_program DEFINITION inactive TYPE r3state VALUE 'I', END OF c_state. + CONSTANTS c_native_dynpro TYPE c LENGTH 2 VALUE 'IN'. + METHODS: uncondense_flow IMPORTING it_flow TYPE swydyflow @@ -359,6 +361,9 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION. it_flow = ls_dynpro-flow_logic it_spaces = ls_dynpro-spaces ). + IF ls_dynpro-flow_logic IS INITIAL. + ls_dynpro-flow_logic = mo_files->read_abap( iv_extra = 'screen_' && ls_dynpro-header-screen ). + ENDIF. LOOP AT ls_dynpro-fields ASSIGNING . * if the DDIC element has a PARAMETER_ID and the flag "from_dict" is active @@ -390,7 +395,7 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION. ENDLOOP. - IF ls_dynpro-header-type = 'N' AND ls_dynpro-nat_header IS NOT INITIAL. + IF ls_dynpro-header-type CA c_native_dynpro AND ls_dynpro-nat_header IS NOT INITIAL. DELETE FROM d021t WHERE prog = ls_dynpro-header-program AND dynr = ls_dynpro-header-screen ##SUBRC_OK. INSERT d021t FROM TABLE ls_dynpro-nat_texts ##SUBRC_OK. @@ -913,11 +918,15 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION. ENDLOOP. APPEND INITIAL LINE TO rt_dynpro ASSIGNING . - -header = ls_header. - -flow_logic = lt_flow_logic. + -header = ls_header. + + " Store flow logic as separate ABAP files instead of XML + mo_files->add_abap( + iv_extra = 'screen_' && ls_header-screen + it_abap = lt_flow_logic ). READ TABLE lt_fieldlist_int TRANSPORTING NO FIELDS WITH KEY fill = 'X'. - IF ls_header-type = 'N' AND sy-subrc = 0. + IF ls_header-type CA c_native_dynpro AND sy-subrc = 0. " In particular for dynpros with splitter -nat_header = . CLEAR: -nat_header-dgen, -nat_header-tgen.