mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
PROG: Support dynpros with splitter control (#7035)
This commit is contained in:
parent
be5ec9ed29
commit
84656774fd
|
@ -49,6 +49,9 @@ CLASS zcl_abapgit_objects_program DEFINITION
|
||||||
fields TYPE dyfatc_tab,
|
fields TYPE dyfatc_tab,
|
||||||
flow_logic TYPE swydyflow,
|
flow_logic TYPE swydyflow,
|
||||||
spaces TYPE ty_spaces_tt,
|
spaces TYPE ty_spaces_tt,
|
||||||
|
nat_header TYPE d020s,
|
||||||
|
nat_fields TYPE STANDARD TABLE OF d021s WITH DEFAULT KEY,
|
||||||
|
nat_texts TYPE STANDARD TABLE OF d021t WITH DEFAULT KEY,
|
||||||
END OF ty_dynpro .
|
END OF ty_dynpro .
|
||||||
TYPES:
|
TYPES:
|
||||||
ty_dynpro_tt TYPE STANDARD TABLE OF ty_dynpro WITH DEFAULT KEY .
|
ty_dynpro_tt TYPE STANDARD TABLE OF ty_dynpro WITH DEFAULT KEY .
|
||||||
|
@ -304,6 +307,7 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
DATA: lv_name TYPE dwinactiv-obj_name,
|
DATA: lv_name TYPE dwinactiv-obj_name,
|
||||||
lt_d020s_to_delete TYPE TABLE OF d020s,
|
lt_d020s_to_delete TYPE TABLE OF d020s,
|
||||||
ls_d020s LIKE LINE OF lt_d020s_to_delete,
|
ls_d020s LIKE LINE OF lt_d020s_to_delete,
|
||||||
|
lt_params TYPE TABLE OF d023s,
|
||||||
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.
|
||||||
|
@ -371,30 +375,52 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
CALL FUNCTION 'RPY_DYNPRO_INSERT'
|
IF ls_dynpro-header-type = 'N'.
|
||||||
EXPORTING
|
DELETE FROM d021t WHERE prog = ls_dynpro-header-program AND dynr = ls_dynpro-header-screen ##SUBRC_OK.
|
||||||
header = ls_dynpro-header
|
INSERT d021t FROM TABLE ls_dynpro-nat_texts ##SUBRC_OK.
|
||||||
suppress_exist_checks = abap_true
|
|
||||||
suppress_generate = ls_dynpro-header-no_execute
|
ls_dynpro-nat_header-dgen = sy-datum.
|
||||||
TABLES
|
ls_dynpro-nat_header-tgen = sy-uzeit.
|
||||||
containers = ls_dynpro-containers
|
|
||||||
fields_to_containers = ls_dynpro-fields
|
CALL FUNCTION 'RPY_DYNPRO_INSERT_NATIVE'
|
||||||
flow_logic = ls_dynpro-flow_logic
|
EXPORTING
|
||||||
EXCEPTIONS
|
header = ls_dynpro-nat_header
|
||||||
cancelled = 1
|
dynprotext = ls_dynpro-header-descript
|
||||||
already_exists = 2
|
TABLES
|
||||||
program_not_exists = 3
|
fieldlist = ls_dynpro-nat_fields
|
||||||
not_executed = 4
|
flowlogic = ls_dynpro-flow_logic
|
||||||
missing_required_field = 5
|
params = lt_params
|
||||||
illegal_field_value = 6
|
EXCEPTIONS
|
||||||
field_not_allowed = 7
|
cancelled = 1
|
||||||
not_generated = 8
|
already_exists = 2
|
||||||
illegal_field_position = 9
|
program_not_exists = 3
|
||||||
OTHERS = 10.
|
not_executed = 4
|
||||||
|
OTHERS = 5.
|
||||||
|
ELSE.
|
||||||
|
CALL FUNCTION 'RPY_DYNPRO_INSERT'
|
||||||
|
EXPORTING
|
||||||
|
header = ls_dynpro-header
|
||||||
|
suppress_exist_checks = abap_true
|
||||||
|
suppress_generate = ls_dynpro-header-no_execute
|
||||||
|
TABLES
|
||||||
|
containers = ls_dynpro-containers
|
||||||
|
fields_to_containers = ls_dynpro-fields
|
||||||
|
flow_logic = ls_dynpro-flow_logic
|
||||||
|
EXCEPTIONS
|
||||||
|
cancelled = 1
|
||||||
|
already_exists = 2
|
||||||
|
program_not_exists = 3
|
||||||
|
not_executed = 4
|
||||||
|
missing_required_field = 5
|
||||||
|
illegal_field_value = 6
|
||||||
|
field_not_allowed = 7
|
||||||
|
not_generated = 8
|
||||||
|
illegal_field_position = 9
|
||||||
|
OTHERS = 10.
|
||||||
|
ENDIF.
|
||||||
IF sy-subrc <> 2 AND sy-subrc <> 0.
|
IF sy-subrc <> 2 AND sy-subrc <> 0.
|
||||||
zcx_abapgit_exception=>raise_t100( ).
|
zcx_abapgit_exception=>raise_t100( ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
* todo, RPY_DYNPRO_UPDATE?
|
|
||||||
|
|
||||||
CONCATENATE ls_dynpro-header-program ls_dynpro-header-screen
|
CONCATENATE ls_dynpro-header-program ls_dynpro-header-screen
|
||||||
INTO lv_name RESPECTING BLANKS.
|
INTO lv_name RESPECTING BLANKS.
|
||||||
|
@ -717,6 +743,7 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
lt_fields_to_containers TYPE dyfatc_tab,
|
lt_fields_to_containers TYPE dyfatc_tab,
|
||||||
lt_flow_logic TYPE swydyflow,
|
lt_flow_logic TYPE swydyflow,
|
||||||
lt_d020s TYPE TABLE OF d020s,
|
lt_d020s TYPE TABLE OF d020s,
|
||||||
|
lt_texts TYPE TABLE OF d021t,
|
||||||
lt_fieldlist_int TYPE TABLE OF d021s. "internal format
|
lt_fieldlist_int TYPE TABLE OF d021s. "internal format
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_d020s> LIKE LINE OF lt_d020s,
|
FIELD-SYMBOLS: <ls_d020s> LIKE LINE OF lt_d020s,
|
||||||
|
@ -777,11 +804,11 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
|
|
||||||
CALL FUNCTION 'RPY_DYNPRO_READ_NATIVE'
|
CALL FUNCTION 'RPY_DYNPRO_READ_NATIVE'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
progname = iv_program_name
|
progname = iv_program_name
|
||||||
dynnr = <ls_d020s>-dnum
|
dynnr = <ls_d020s>-dnum
|
||||||
TABLES
|
TABLES
|
||||||
fieldlist = lt_fieldlist_int.
|
fieldlist = lt_fieldlist_int
|
||||||
|
fieldtexts = lt_texts.
|
||||||
|
|
||||||
LOOP AT lt_fields_to_containers ASSIGNING <ls_field>.
|
LOOP AT lt_fields_to_containers ASSIGNING <ls_field>.
|
||||||
* output style is a NUMC field, the XML conversion will fail if it contains invalid value
|
* output style is a NUMC field, the XML conversion will fail if it contains invalid value
|
||||||
|
@ -824,11 +851,19 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
|
|
||||||
APPEND INITIAL LINE TO rt_dynpro ASSIGNING <ls_dynpro>.
|
APPEND INITIAL LINE TO rt_dynpro ASSIGNING <ls_dynpro>.
|
||||||
<ls_dynpro>-header = ls_header.
|
<ls_dynpro>-header = ls_header.
|
||||||
<ls_dynpro>-containers = lt_containers.
|
|
||||||
<ls_dynpro>-fields = lt_fields_to_containers.
|
|
||||||
|
|
||||||
<ls_dynpro>-flow_logic = lt_flow_logic.
|
<ls_dynpro>-flow_logic = lt_flow_logic.
|
||||||
|
|
||||||
|
IF ls_header-type = 'N'.
|
||||||
|
" In particular for dynpros with splitter
|
||||||
|
<ls_dynpro>-nat_header = <ls_d020s>.
|
||||||
|
CLEAR: <ls_dynpro>-nat_header-dgen, <ls_dynpro>-nat_header-tgen.
|
||||||
|
<ls_dynpro>-nat_fields = lt_fieldlist_int.
|
||||||
|
<ls_dynpro>-nat_texts = lt_texts.
|
||||||
|
ELSE.
|
||||||
|
<ls_dynpro>-containers = lt_containers.
|
||||||
|
<ls_dynpro>-fields = lt_fields_to_containers.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user