Merge branch 'main' into mbtools/wdyn_controller_code

This commit is contained in:
Lars Hvam 2024-11-04 10:11:53 +01:00 committed by GitHub
commit 9fbcdcb62c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 200 additions and 25 deletions

View File

@ -46,6 +46,7 @@ CLASS ZCL_ABAPGIT_AFF_REGISTRY IMPLEMENTATION.
METHOD initialize_registry_table.
register( 'APLO' ).
register( 'BGQC' ).
register( 'CDBO' ).
register( 'CHKC' ).
@ -61,6 +62,8 @@ CLASS ZCL_ABAPGIT_AFF_REGISTRY IMPLEMENTATION.
register( 'GSMP' ).
register( iv_obj_type = 'INTF'
iv_experimental = abap_true ).
register( 'SAJT' ).
register( 'SAJC' ).
register( 'SMBC' ).
register( 'SWCR' ).
register( 'NONT' ).

View File

@ -0,0 +1,24 @@
CLASS zcl_abapgit_object_aplo DEFINITION
PUBLIC
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by
REDEFINITION .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_APLO IMPLEMENTATION.
METHOD zif_abapgit_object~changed_by.
CLEAR rv_user.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_APLO</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abapGit - APLO - Application Log Object</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -55,7 +55,9 @@ CLASS zcl_abapgit_object_common_aff DEFINITION
METHODS create_aff_setting_deserialize FINAL
RETURNING
VALUE(ro_settings_deserialize) TYPE REF TO object.
VALUE(ro_settings_deserialize) TYPE REF TO object
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
METHODS is_file_empty
@ -110,6 +112,29 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION.
ENDMETHOD.
METHOD create_aff_setting_deserialize.
IF ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_any_abap_language_version AND
ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_no_abap_language_version.
TRY.
CREATE OBJECT ro_settings_deserialize TYPE ('CL_AFF_SETTINGS_DESERIALIZE')
EXPORTING
version = 'A'
language = mv_language
user = sy-uname
abap_language_version = ms_item-abap_language_version.
CATCH cx_root.
zcx_abapgit_exception=>raise( |System does not supported ABAP language version for AFF| ).
ENDTRY.
ELSE.
CREATE OBJECT ro_settings_deserialize TYPE ('CL_AFF_SETTINGS_DESERIALIZE')
EXPORTING
version = 'A'
language = mv_language
user = sy-uname.
ENDIF.
ENDMETHOD.
METHOD get_additional_extensions.
RETURN.
ENDMETHOD.
@ -412,25 +437,6 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION.
ENDMETHOD.
METHOD create_aff_setting_deserialize.
IF ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_any_abap_language_version AND
ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_no_abap_language_version.
CREATE OBJECT ro_settings_deserialize TYPE ('CL_AFF_SETTINGS_DESERIALIZE')
EXPORTING
version = 'A'
language = mv_language
user = sy-uname
abap_language_version = ms_item-abap_language_version.
ELSE.
CREATE OBJECT ro_settings_deserialize TYPE ('CL_AFF_SETTINGS_DESERIALIZE')
EXPORTING
version = 'A'
language = mv_language
user = sy-uname.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_object~exists.
DATA: lr_intf_aff_obj TYPE REF TO data,
lo_object_handler TYPE REF TO object,

View File

@ -226,7 +226,13 @@ CLASS ltcl_aff_settings_deserialize IMPLEMENTATION.
is_item = ls_item
iv_language = 'E'.
lo_settings_deserialize = lo_cut->create_aff_setting_deserialize( ).
TRY.
lo_settings_deserialize = lo_cut->create_aff_setting_deserialize( ).
CATCH cx_root.
" System doesn't support AFF with ABAP language version
RETURN.
ENDTRY.
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_ABAP_LANGUAGE_VERSION')
RECEIVING
result = lv_act_setting_abap_lv.

View File

@ -0,0 +1,38 @@
CLASS zcl_abapgit_object_sajc DEFINITION
PUBLIC
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by
REDEFINITION .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_SAJC IMPLEMENTATION.
METHOD zif_abapgit_object~changed_by.
CONSTANTS lc_table_name TYPE tabname VALUE 'APJ_W_JCE_ROOT'.
SELECT SINGLE lst_ch_user_acct
FROM (lc_table_name)
INTO rv_user
WHERE job_catalog_entry_name = ms_item-obj_name
AND job_catalog_entry_version = 'I'.
IF rv_user IS INITIAL.
SELECT SINGLE lst_ch_user_acct
FROM (lc_table_name)
INTO rv_user
WHERE job_catalog_entry_name = ms_item-obj_name
AND job_catalog_entry_version = 'A'.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_SAJC</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abapGit - SAJC - Application Job Catalog Entry</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,39 @@
CLASS zcl_abapgit_object_sajt DEFINITION
PUBLIC
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by
REDEFINITION .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_SAJT IMPLEMENTATION.
METHOD zif_abapgit_object~changed_by.
CONSTANTS lc_table_name TYPE tabname VALUE 'APJ_W_JT_ROOT'.
SELECT SINGLE lst_ch_user_acct
FROM (lc_table_name)
INTO rv_user
WHERE job_template_name = ms_item-obj_name
AND job_template_version = 'I'.
IF rv_user IS INITIAL.
SELECT SINGLE lst_ch_user_acct
FROM (lc_table_name)
INTO rv_user
WHERE job_template_name = ms_item-obj_name
AND job_template_version = 'A'.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_SAJT</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abapGit - SAJT - Application Job Template</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -76,6 +76,8 @@ CLASS zcl_abapgit_object_shi8 IMPLEMENTATION.
ls_node_data-tree_id = ls_assignment_data-tree_id.
ls_node_data-node_id = ls_assignment_data-node_id.
tadir_insert( iv_package ).
CALL FUNCTION 'STREE_SFW_ASSIGNMENT_SAVE'
EXPORTING
assignment_id = ls_assignment_data-sfw_ass_id

View File

@ -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 <ls_field>.
* 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 <ls_dynpro>.
<ls_dynpro>-header = ls_header.
<ls_dynpro>-flow_logic = lt_flow_logic.
<ls_dynpro>-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
<ls_dynpro>-nat_header = <ls_d020s>.
CLEAR: <ls_dynpro>-nat_header-dgen, <ls_dynpro>-nat_header-tgen.