mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Merge branch 'main' into mbtools/ssfo_abap
This commit is contained in:
commit
ec988d36c5
|
@ -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' ).
|
||||
|
|
24
src/objects/aff/zcl_abapgit_object_aplo.clas.abap
Normal file
24
src/objects/aff/zcl_abapgit_object_aplo.clas.abap
Normal 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.
|
16
src/objects/aff/zcl_abapgit_object_aplo.clas.xml
Normal file
16
src/objects/aff/zcl_abapgit_object_aplo.clas.xml
Normal 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>
|
|
@ -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,
|
||||
|
|
|
@ -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.
|
||||
|
|
38
src/objects/aff/zcl_abapgit_object_sajc.clas.abap
Normal file
38
src/objects/aff/zcl_abapgit_object_sajc.clas.abap
Normal 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.
|
16
src/objects/aff/zcl_abapgit_object_sajc.clas.xml
Normal file
16
src/objects/aff/zcl_abapgit_object_sajc.clas.xml
Normal 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>
|
39
src/objects/aff/zcl_abapgit_object_sajt.clas.abap
Normal file
39
src/objects/aff/zcl_abapgit_object_sajt.clas.abap
Normal 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.
|
16
src/objects/aff/zcl_abapgit_object_sajt.clas.xml
Normal file
16
src/objects/aff/zcl_abapgit_object_sajt.clas.xml
Normal 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>
|
|
@ -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
|
||||
|
|
|
@ -59,6 +59,12 @@ CLASS zcl_abapgit_object_wdyn DEFINITION
|
|||
IMPORTING is_view TYPE wdy_md_view_meta_data
|
||||
RETURNING VALUE(rs_delta) TYPE svrs2_xversionable_object
|
||||
RAISING zcx_abapgit_exception,
|
||||
deserialize_sources
|
||||
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
|
||||
RAISING zcx_abapgit_exception,
|
||||
serialize_sources
|
||||
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_output
|
||||
RAISING zcx_abapgit_exception,
|
||||
add_fm_param_exporting
|
||||
IMPORTING iv_name TYPE string
|
||||
ig_value TYPE any
|
||||
|
@ -79,7 +85,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_WDYN IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_object_wdyn IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD add_fm_exception.
|
||||
|
@ -382,6 +388,61 @@ CLASS ZCL_ABAPGIT_OBJECT_WDYN IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD deserialize_sources.
|
||||
|
||||
DATA:
|
||||
lv_extra TYPE string,
|
||||
lt_extra TYPE string_table,
|
||||
ls_abap TYPE abaptxt255,
|
||||
lt_abap TYPE abaptxt255_tab,
|
||||
lv_line TYPE wdy_ctlr_compo_source_vrs-line_number,
|
||||
lv_cmpname TYPE wdy_ctlr_compo_source_vrs-cmpname,
|
||||
ls_sources LIKE LINE OF mt_sources.
|
||||
|
||||
" Old format
|
||||
ii_xml->read( EXPORTING iv_name = 'SOURCES'
|
||||
CHANGING cg_data = mt_sources ).
|
||||
|
||||
IF mt_sources IS NOT INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
" New format
|
||||
ii_xml->read( EXPORTING iv_name = 'FILES'
|
||||
CHANGING cg_data = lt_extra ).
|
||||
|
||||
LOOP AT lt_extra INTO lv_extra.
|
||||
lv_line = 0.
|
||||
lt_abap = mo_files->read_abap( iv_extra = lv_extra ).
|
||||
LOOP AT lt_abap INTO ls_abap.
|
||||
" Start of method
|
||||
FIND REGEX '\s*method\s+(.*)\s*\.' IN ls_abap-line IGNORING CASE SUBMATCHES lv_cmpname.
|
||||
IF sy-subrc = 0.
|
||||
lv_line = 1.
|
||||
ENDIF.
|
||||
|
||||
IF lv_cmpname IS NOT INITIAL AND lv_line > 0.
|
||||
CLEAR ls_sources.
|
||||
ls_sources-component_name = ms_item-obj_name.
|
||||
ls_sources-controller_name = to_upper( lv_extra ).
|
||||
ls_sources-cmpname = to_upper( lv_cmpname ).
|
||||
ls_sources-line_number = lv_line.
|
||||
ls_sources-source_line = ls_abap-line.
|
||||
INSERT ls_sources INTO TABLE mt_sources.
|
||||
lv_line = lv_line + 1.
|
||||
ENDIF.
|
||||
|
||||
" End of method
|
||||
FIND REGEX '\s*endmethod\s*\.' IN ls_abap-line IGNORING CASE.
|
||||
IF sy-subrc = 0.
|
||||
lv_line = 0.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_limu_objects.
|
||||
|
||||
DATA: lv_name TYPE wdy_component_name.
|
||||
|
@ -786,6 +847,47 @@ CLASS ZCL_ABAPGIT_OBJECT_WDYN IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD serialize_sources.
|
||||
|
||||
DATA:
|
||||
lv_extra TYPE string,
|
||||
lt_extra TYPE string_table,
|
||||
ls_abap TYPE abaptxt255,
|
||||
lt_abap TYPE abaptxt255_tab.
|
||||
|
||||
FIELD-SYMBOLS <ls_sources> LIKE LINE OF mt_sources.
|
||||
|
||||
" Store code as separate ABAP files instead of XML (assumes sorted data, see "read")
|
||||
LOOP AT mt_sources ASSIGNING <ls_sources>.
|
||||
AT NEW controller_name.
|
||||
CLEAR lt_abap.
|
||||
lv_extra = to_lower( <ls_sources>-controller_name ).
|
||||
ENDAT.
|
||||
|
||||
ls_abap-line = <ls_sources>-source_line.
|
||||
INSERT ls_abap INTO TABLE lt_abap.
|
||||
|
||||
AT END OF cmpname.
|
||||
CLEAR ls_abap.
|
||||
INSERT ls_abap INTO TABLE lt_abap.
|
||||
ENDAT.
|
||||
AT END OF controller_name.
|
||||
IF lt_abap IS NOT INITIAL.
|
||||
mo_files->add_abap(
|
||||
iv_extra = lv_extra
|
||||
it_abap = lt_abap ).
|
||||
INSERT lv_extra INTO TABLE lt_extra.
|
||||
ENDIF.
|
||||
ENDAT.
|
||||
ENDLOOP.
|
||||
|
||||
ii_xml->add(
|
||||
iv_name = 'FILES'
|
||||
ig_data = lt_extra ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
SELECT SINGLE changedby FROM wdy_component INTO rv_user
|
||||
WHERE component_name = ms_item-obj_name AND version = 'A'.
|
||||
|
@ -831,8 +933,8 @@ CLASS ZCL_ABAPGIT_OBJECT_WDYN IMPLEMENTATION.
|
|||
CHANGING cg_data = ls_component ).
|
||||
io_xml->read( EXPORTING iv_name = 'COMPONENTS'
|
||||
CHANGING cg_data = mt_components ).
|
||||
io_xml->read( EXPORTING iv_name = 'SOURCES'
|
||||
CHANGING cg_data = mt_sources ).
|
||||
|
||||
deserialize_sources( io_xml ).
|
||||
|
||||
ls_component-comp_metadata-definition-author = sy-uname.
|
||||
ls_component-comp_metadata-definition-createdon = sy-datum.
|
||||
|
@ -944,8 +1046,8 @@ CLASS ZCL_ABAPGIT_OBJECT_WDYN IMPLEMENTATION.
|
|||
ig_data = ls_component ).
|
||||
io_xml->add( ig_data = mt_components
|
||||
iv_name = 'COMPONENTS' ).
|
||||
io_xml->add( ig_data = mt_sources
|
||||
iv_name = 'SOURCES' ).
|
||||
|
||||
serialize_sources( io_xml ).
|
||||
|
||||
READ TABLE ls_component-comp_metadata-descriptions INTO ls_description INDEX 1.
|
||||
IF sy-subrc = 0.
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue
Block a user