mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Handle ABAP Language Version for source code objects (#6476)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
a7b100c366
commit
cbd3cb3311
|
@ -44,6 +44,7 @@ CLASS zcl_abapgit_oo_class DEFINITION
|
|||
!iv_program TYPE syrepid
|
||||
!it_source TYPE string_table
|
||||
!iv_package TYPE devclass
|
||||
!iv_version TYPE uccheck
|
||||
RETURNING
|
||||
VALUE(rv_updated) TYPE abap_bool
|
||||
RAISING
|
||||
|
@ -82,6 +83,7 @@ CLASS zcl_abapgit_oo_class DEFINITION
|
|||
!it_source TYPE string_table
|
||||
!it_methods TYPE cl_oo_source_scanner_class=>type_method_implementations
|
||||
!iv_package TYPE devclass
|
||||
!iv_version TYPE uccheck
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
CLASS-METHODS create_report
|
||||
|
@ -90,8 +92,9 @@ CLASS zcl_abapgit_oo_class DEFINITION
|
|||
!it_source TYPE string_table
|
||||
!iv_extension TYPE ty_char2
|
||||
!iv_program_type TYPE ty_char1
|
||||
!iv_version TYPE r3state
|
||||
!iv_state TYPE r3state
|
||||
!iv_package TYPE devclass
|
||||
!iv_version TYPE uccheck
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
CLASS-METHODS update_cs_number_of_methods
|
||||
|
@ -122,7 +125,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_oo_class IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD create_report.
|
||||
|
@ -130,7 +133,8 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
|||
iv_name = iv_program
|
||||
iv_package = iv_package
|
||||
it_source = it_source
|
||||
iv_state = iv_version
|
||||
iv_state = iv_state
|
||||
iv_version = iv_version
|
||||
iv_program_type = iv_program_type
|
||||
iv_extension_type = iv_extension ).
|
||||
ENDMETHOD.
|
||||
|
@ -420,7 +424,8 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
|||
it_source = it_source
|
||||
iv_extension = lc_class_source_extension
|
||||
iv_program_type = lc_include_program_type
|
||||
iv_version = lc_active_version ).
|
||||
iv_state = lc_active_version
|
||||
iv_version = iv_version ).
|
||||
|
||||
" Assuming that all methods that were scanned are implemented
|
||||
update_cs_number_of_methods( iv_classname = iv_classname
|
||||
|
@ -508,6 +513,7 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
|||
rv_updated = zcl_abapgit_factory=>get_sap_report( )->update_report(
|
||||
iv_name = iv_program
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = it_source ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -692,6 +698,7 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
|||
lv_program = cl_oo_classname_service=>get_pubsec_name( is_key-clsname ).
|
||||
lv_updated = update_report( iv_program = lv_program
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = lt_public ).
|
||||
IF lv_updated = abap_true.
|
||||
update_meta( iv_name = is_key-clsname
|
||||
|
@ -706,6 +713,7 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
|||
lv_program = cl_oo_classname_service=>get_prosec_name( is_key-clsname ).
|
||||
lv_updated = update_report( iv_program = lv_program
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = lt_source ).
|
||||
IF lv_updated = abap_true.
|
||||
update_meta( iv_name = is_key-clsname
|
||||
|
@ -720,6 +728,7 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
|||
lv_program = cl_oo_classname_service=>get_prisec_name( is_key-clsname ).
|
||||
lv_updated = update_report( iv_program = lv_program
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = lt_source ).
|
||||
IF lv_updated = abap_true.
|
||||
update_meta( iv_name = is_key-clsname
|
||||
|
@ -746,6 +755,7 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
|||
update_report(
|
||||
iv_program = lv_program
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = lt_source ).
|
||||
|
||||
" If method was implemented before, remove from list
|
||||
|
@ -755,6 +765,7 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
|||
* full class include
|
||||
update_full_class_include( iv_classname = is_key-clsname
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = it_source
|
||||
it_methods = lt_methods ).
|
||||
|
||||
|
@ -795,6 +806,7 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
|||
lv_program = cl_oo_classname_service=>get_ccdef_name( is_key-clsname ).
|
||||
update_report( iv_program = lv_program
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = it_local_definitions ).
|
||||
ENDIF.
|
||||
|
||||
|
@ -802,6 +814,7 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
|||
lv_program = cl_oo_classname_service=>get_ccimp_name( is_key-clsname ).
|
||||
update_report( iv_program = lv_program
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = it_local_implementations ).
|
||||
ENDIF.
|
||||
|
||||
|
@ -809,6 +822,7 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
|||
lv_program = cl_oo_classname_service=>get_ccmac_name( is_key-clsname ).
|
||||
update_report( iv_program = lv_program
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = it_local_macros ).
|
||||
ENDIF.
|
||||
|
||||
|
@ -816,6 +830,7 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION.
|
|||
IF lines( it_local_test_classes ) > 0.
|
||||
update_report( iv_program = lv_program
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = it_local_test_classes ).
|
||||
ELSE.
|
||||
" Drop the include to remove left-over test classes
|
||||
|
|
|
@ -25,6 +25,7 @@ CLASS zcl_abapgit_oo_interface DEFINITION
|
|||
!iv_program TYPE syrepid
|
||||
!it_source TYPE string_table
|
||||
!iv_package TYPE devclass
|
||||
!iv_version TYPE uccheck
|
||||
RETURNING
|
||||
VALUE(rv_updated) TYPE abap_bool
|
||||
RAISING
|
||||
|
@ -146,6 +147,7 @@ CLASS zcl_abapgit_oo_interface IMPLEMENTATION.
|
|||
rv_updated = zcl_abapgit_factory=>get_sap_report( )->update_report(
|
||||
iv_name = iv_program
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = it_source ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -265,6 +267,7 @@ CLASS zcl_abapgit_oo_interface IMPLEMENTATION.
|
|||
lv_program = cl_oo_classname_service=>get_intfsec_name( is_key-clsname ).
|
||||
lv_updated = update_report( iv_program = lv_program
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = lt_public ).
|
||||
IF lv_updated = abap_true.
|
||||
update_meta( iv_name = is_key-clsname
|
||||
|
|
|
@ -36,6 +36,7 @@ INTERFACE zif_abapgit_oo_object_fnc PUBLIC.
|
|||
it_local_macros TYPE seop_source_string OPTIONAL
|
||||
it_local_test_classes TYPE seop_source_string OPTIONAL
|
||||
iv_package TYPE devclass
|
||||
iv_version TYPE uccheck
|
||||
RAISING
|
||||
zcx_abapgit_exception,
|
||||
deserialize_source
|
||||
|
@ -43,6 +44,7 @@ INTERFACE zif_abapgit_oo_object_fnc PUBLIC.
|
|||
is_key TYPE seoclskey
|
||||
it_source TYPE zif_abapgit_definitions=>ty_string_tt
|
||||
iv_package TYPE devclass
|
||||
iv_version TYPE uccheck
|
||||
RAISING
|
||||
zcx_abapgit_exception
|
||||
cx_sy_dyn_call_error,
|
||||
|
|
|
@ -10,12 +10,6 @@ CLASS zcl_abapgit_sap_report DEFINITION
|
|||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
||||
METHODS get_language_version
|
||||
IMPORTING
|
||||
iv_package TYPE devclass
|
||||
RETURNING
|
||||
VALUE(rv_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version.
|
||||
|
||||
METHODS authorization_check
|
||||
IMPORTING
|
||||
iv_mode TYPE csequence
|
||||
|
@ -83,21 +77,6 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_language_version.
|
||||
|
||||
" TODO: Determine ABAP Language Version
|
||||
" https://github.com/abapGit/abapGit/issues/6154#issuecomment-1503566920)
|
||||
|
||||
" For now, use default for ABAP source code
|
||||
IF zcl_abapgit_factory=>get_environment( )->is_sap_cloud_platform( ) = abap_true.
|
||||
rv_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-cloud_development.
|
||||
ELSE.
|
||||
rv_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_sap_report~delete_report.
|
||||
|
||||
authorization_check(
|
||||
|
@ -115,14 +94,9 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_sap_report~insert_report.
|
||||
|
||||
DATA lv_version TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version.
|
||||
DATA lv_obj_name TYPE e071-obj_name.
|
||||
|
||||
ASSERT iv_state CA ' AI'.
|
||||
ASSERT iv_program_type CA ' 1FIJKMST'.
|
||||
|
||||
lv_version = get_language_version( iv_package ).
|
||||
|
||||
authorization_check(
|
||||
iv_mode = 'MODIFY'
|
||||
is_item = is_item ).
|
||||
|
@ -131,7 +105,7 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION.
|
|||
INSERT REPORT iv_name FROM it_source.
|
||||
ELSEIF iv_program_type IS INITIAL AND iv_extension_type IS INITIAL.
|
||||
INSERT REPORT iv_name FROM it_source
|
||||
STATE iv_state.
|
||||
STATE iv_state.
|
||||
ELSEIF iv_extension_type IS INITIAL.
|
||||
INSERT REPORT iv_name FROM it_source
|
||||
STATE iv_state
|
||||
|
@ -149,7 +123,7 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION.
|
|||
|
||||
" In lower releases, INSERT REPORT does not support setting ABAP Language version (VERSION)
|
||||
" Therefore, update the flag directly
|
||||
UPDATE progdir SET uccheck = lv_version WHERE name = iv_name AND state = iv_state.
|
||||
UPDATE progdir SET uccheck = iv_version WHERE name = iv_name AND state = iv_state.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -276,6 +250,7 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION.
|
|||
iv_program_type = iv_program_type
|
||||
iv_extension_type = iv_extension_type
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
is_item = is_item ).
|
||||
|
||||
rv_updated = abap_true.
|
||||
|
|
|
@ -53,6 +53,7 @@ INTERFACE zif_abapgit_sap_report
|
|||
iv_program_type TYPE c OPTIONAL
|
||||
iv_extension_type TYPE c OPTIONAL
|
||||
iv_package TYPE devclass
|
||||
iv_version TYPE uccheck
|
||||
is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
@ -65,6 +66,7 @@ INTERFACE zif_abapgit_sap_report
|
|||
iv_program_type TYPE c OPTIONAL
|
||||
iv_extension_type TYPE c OPTIONAL
|
||||
iv_package TYPE devclass
|
||||
iv_version TYPE uccheck
|
||||
is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
|
||||
RETURNING
|
||||
VALUE(rv_updated) TYPE abap_bool
|
||||
|
|
|
@ -135,7 +135,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_CLAS IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -186,6 +186,8 @@ CLASS ZCL_ABAPGIT_OBJECT_CLAS IMPLEMENTATION.
|
|||
ii_xml->read( EXPORTING iv_name = 'VSEOCLASS'
|
||||
CHANGING cg_data = ls_vseoclass ).
|
||||
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = ls_vseoclass-unicode ).
|
||||
|
||||
ii_xml->read( EXPORTING iv_name = 'ATTRIBUTES'
|
||||
CHANGING cg_data = lt_attributes ).
|
||||
|
||||
|
@ -205,15 +207,18 @@ CLASS ZCL_ABAPGIT_OBJECT_CLAS IMPLEMENTATION.
|
|||
mi_object_oriented_object_fct->generate_locals(
|
||||
is_key = ls_class_key
|
||||
iv_package = iv_package
|
||||
iv_version = ls_vseoclass-unicode
|
||||
it_local_definitions = lt_local_definitions
|
||||
it_local_implementations = lt_local_implementations
|
||||
it_local_macros = lt_local_macros
|
||||
it_local_test_classes = lt_test_classes ).
|
||||
|
||||
repo_apack_replacement( CHANGING ct_source = lt_source ).
|
||||
|
||||
mi_object_oriented_object_fct->deserialize_source(
|
||||
is_key = ls_class_key
|
||||
iv_package = iv_package
|
||||
iv_version = ls_vseoclass-unicode
|
||||
it_source = lt_source ).
|
||||
|
||||
ii_xml->read( EXPORTING iv_name = 'DESCRIPTIONS'
|
||||
|
@ -303,6 +308,8 @@ CLASS ZCL_ABAPGIT_OBJECT_CLAS IMPLEMENTATION.
|
|||
ii_xml->read( EXPORTING iv_name = 'VSEOCLASS'
|
||||
CHANGING cg_data = ls_vseoclass ).
|
||||
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = ls_vseoclass-unicode ).
|
||||
|
||||
mi_object_oriented_object_fct->create(
|
||||
EXPORTING
|
||||
iv_check = abap_false
|
||||
|
@ -671,6 +678,8 @@ CLASS ZCL_ABAPGIT_OBJECT_CLAS IMPLEMENTATION.
|
|||
TRY.
|
||||
ls_vseoclass = mi_object_oriented_object_fct->get_class_properties( ls_clskey ).
|
||||
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = ls_vseoclass-unicode ).
|
||||
|
||||
CLEANUP.
|
||||
zcl_abapgit_language=>restore_login_language( ).
|
||||
|
||||
|
|
|
@ -495,6 +495,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: li_package TYPE REF TO if_package,
|
||||
ls_package_data TYPE scompkdtln,
|
||||
ls_data_sign TYPE scompksign,
|
||||
|
@ -502,7 +503,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
ls_save_sign TYPE paksavsign.
|
||||
|
||||
FIELD-SYMBOLS: <ls_usage_data> TYPE scomppdtln.
|
||||
|
||||
FIELD-SYMBOLS: <lg_field> TYPE any.
|
||||
|
||||
mv_local_devclass = iv_package.
|
||||
|
||||
|
@ -540,6 +541,15 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
" the hierarchy before.
|
||||
CLEAR ls_package_data-parentcl.
|
||||
|
||||
ASSIGN COMPONENT 'PACKKIND' OF STRUCTURE ls_package_data TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = <lg_field> ).
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'PACKKIND' OF STRUCTURE ls_data_sign TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
<lg_field> = abap_true.
|
||||
ENDIF.
|
||||
|
||||
* Fields not set:
|
||||
* korrflag
|
||||
* dlvunit
|
||||
|
@ -656,10 +666,11 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
update_pinf_usages( ii_package = li_package
|
||||
it_usage_data = lt_usage_data ).
|
||||
|
||||
ls_save_sign-pack = abap_true.
|
||||
ls_save_sign-pack = abap_true.
|
||||
ls_save_sign-permis = abap_true.
|
||||
ls_save_sign-elems = abap_true.
|
||||
ls_save_sign-elems = abap_true.
|
||||
ls_save_sign-interf = abap_true.
|
||||
|
||||
li_package->save_generic(
|
||||
EXPORTING
|
||||
i_save_sign = ls_save_sign
|
||||
|
@ -855,6 +866,11 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
|
||||
CLEAR: ls_package_data-korrflag.
|
||||
|
||||
ASSIGN COMPONENT 'PACKKIND' OF STRUCTURE ls_package_data TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = <lg_field> ).
|
||||
ENDIF.
|
||||
|
||||
io_xml->add( iv_name = 'DEVC'
|
||||
ig_data = ls_package_data ).
|
||||
|
||||
|
|
|
@ -324,6 +324,7 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
zcl_abapgit_factory=>get_sap_report( )->insert_report(
|
||||
iv_name = lv_include
|
||||
iv_package = iv_package
|
||||
iv_version = iv_version
|
||||
it_source = lt_source ).
|
||||
|
||||
ii_log->add_success( iv_msg = |Function module { <ls_func>-funcname } imported|
|
||||
|
@ -396,6 +397,8 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
lo_xml->read( EXPORTING iv_name = 'PROGDIR'
|
||||
CHANGING cg_data = ls_progdir ).
|
||||
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = ls_progdir-uccheck ).
|
||||
|
||||
lo_xml->read( EXPORTING iv_name = 'TPOOL'
|
||||
CHANGING cg_data = lt_tpool_ext ).
|
||||
lt_tpool = read_tpool( lt_tpool_ext ).
|
||||
|
@ -575,7 +578,7 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
ENDLOOP.
|
||||
|
||||
IF rv_abap_version IS INITIAL.
|
||||
rv_abap_version = 'X'.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = rv_abap_version ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -198,6 +198,8 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
CHANGING cg_data = ls_intf-vseointerf ).
|
||||
ENDIF.
|
||||
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = ls_intf-vseointerf-unicode ).
|
||||
|
||||
mi_object_oriented_object_fct->create(
|
||||
EXPORTING
|
||||
iv_check = abap_false
|
||||
|
@ -386,6 +388,8 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
|
||||
ls_intf-vseointerf = mi_object_oriented_object_fct->get_interface_properties( ls_clskey ).
|
||||
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = ls_intf-vseointerf-unicode ).
|
||||
|
||||
" Select all active translations of documentation
|
||||
" Skip main language - it was already serialized
|
||||
SELECT DISTINCT langu
|
||||
|
@ -512,6 +516,8 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
ls_intf = read_xml( io_xml ).
|
||||
ENDIF.
|
||||
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = ls_intf-vseointerf-unicode ).
|
||||
|
||||
IF ls_intf-vseointerf-clsproxy = abap_true.
|
||||
" Proxy interfaces are managed via SPRX
|
||||
deserialize_proxy( iv_transport ).
|
||||
|
@ -526,9 +532,11 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
|
||||
ls_clskey-clsname = ms_item-obj_name.
|
||||
lt_source = zif_abapgit_object~mo_files->read_abap( ).
|
||||
|
||||
mi_object_oriented_object_fct->deserialize_source(
|
||||
is_key = ls_clskey
|
||||
iv_package = iv_package
|
||||
iv_version = ls_intf-vseointerf-unicode
|
||||
it_source = lt_source ).
|
||||
|
||||
deserialize_descriptions( it_description = ls_intf-description ).
|
||||
|
@ -668,5 +676,6 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
zif_abapgit_object~mo_files->add_abap( lt_source ).
|
||||
|
||||
serialize_xml( io_xml ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -135,6 +135,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
ms_item-obj_name = 'ZIF_ABAPGIT_TEST_INTF'.
|
||||
ms_item-obj_type = 'INTF'.
|
||||
ms_item-abap_language_version = 'X'. " assume standard ABAP
|
||||
|
||||
CREATE OBJECT lo_cut
|
||||
EXPORTING
|
||||
|
@ -192,8 +193,6 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
ls_expected_clskey-clsname = 'ZIF_ABAPGIT_TEST_INTF'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = ls_expected_clskey
|
||||
act = mo_object_fnc->ms_deserialize_key ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ls_expected_clskey
|
||||
act = mo_object_fnc->ms_deserialize_key ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = ls_expected_clskey
|
||||
act = mo_object_fnc->ms_descriptions_key ).
|
||||
|
|
|
@ -78,6 +78,7 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION.
|
|||
iv_package = iv_package
|
||||
it_source = it_source
|
||||
iv_state = 'I'
|
||||
iv_version = is_progdir-uccheck
|
||||
iv_program_type = is_progdir-subc
|
||||
iv_extension_type = is_progdir-name+30 ).
|
||||
|
||||
|
@ -227,6 +228,8 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION.
|
|||
io_xml->read( EXPORTING iv_name = 'PROGDIR'
|
||||
CHANGING cg_data = ls_progdir ).
|
||||
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = ls_progdir-uccheck ).
|
||||
|
||||
IF strlen( lv_program_name ) > 30.
|
||||
|
||||
" Objects with extension for example transportable Code Inspector variants (ending with ===VC)
|
||||
|
|
|
@ -52,7 +52,7 @@ CLASS zcl_abapgit_object_type IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
CONCATENATE c_prefix lv_typegroup INTO lv_progname.
|
||||
UPDATE progdir SET uccheck = abap_true
|
||||
UPDATE progdir SET uccheck = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard
|
||||
WHERE name = lv_progname.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error setting uccheck' ).
|
||||
|
@ -143,6 +143,7 @@ CLASS zcl_abapgit_object_type IMPLEMENTATION.
|
|||
zcl_abapgit_factory=>get_sap_report( )->insert_report(
|
||||
iv_name = lv_progname
|
||||
iv_package = iv_package
|
||||
iv_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard
|
||||
it_source = lt_source ).
|
||||
ENDIF.
|
||||
|
||||
|
|
|
@ -538,22 +538,42 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
|||
|
||||
METHOD insert_program.
|
||||
|
||||
CALL FUNCTION 'RPY_PROGRAM_INSERT'
|
||||
EXPORTING
|
||||
development_class = iv_package
|
||||
program_name = is_progdir-name
|
||||
program_type = is_progdir-subc
|
||||
title_string = iv_title
|
||||
save_inactive = 'I'
|
||||
suppress_dialog = abap_true
|
||||
TABLES
|
||||
source_extended = it_source
|
||||
EXCEPTIONS
|
||||
already_exists = 1
|
||||
cancelled = 2
|
||||
name_not_allowed = 3
|
||||
permission_error = 4
|
||||
OTHERS = 5.
|
||||
TRY.
|
||||
CALL FUNCTION 'RPY_PROGRAM_INSERT'
|
||||
EXPORTING
|
||||
development_class = iv_package
|
||||
program_name = is_progdir-name
|
||||
program_type = is_progdir-subc
|
||||
title_string = iv_title
|
||||
save_inactive = 'I'
|
||||
suppress_dialog = abap_true
|
||||
uccheck = is_progdir-uccheck " does not exist on lower releases
|
||||
TABLES
|
||||
source_extended = it_source
|
||||
EXCEPTIONS
|
||||
already_exists = 1
|
||||
cancelled = 2
|
||||
name_not_allowed = 3
|
||||
permission_error = 4
|
||||
OTHERS = 5.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL FUNCTION 'RPY_PROGRAM_INSERT'
|
||||
EXPORTING
|
||||
development_class = iv_package
|
||||
program_name = is_progdir-name
|
||||
program_type = is_progdir-subc
|
||||
title_string = iv_title
|
||||
save_inactive = 'I'
|
||||
suppress_dialog = abap_true
|
||||
TABLES
|
||||
source_extended = it_source
|
||||
EXCEPTIONS
|
||||
already_exists = 1
|
||||
cancelled = 2
|
||||
name_not_allowed = 3
|
||||
permission_error = 4
|
||||
OTHERS = 5.
|
||||
ENDTRY.
|
||||
IF sy-subrc = 3.
|
||||
|
||||
" For cases that standard function does not handle (like FUGR),
|
||||
|
@ -564,6 +584,7 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
|||
iv_package = iv_package
|
||||
it_source = it_source
|
||||
iv_state = 'A'
|
||||
iv_version = is_progdir-uccheck
|
||||
iv_program_type = is_progdir-subc ).
|
||||
|
||||
zcl_abapgit_factory=>get_sap_report( )->insert_report(
|
||||
|
@ -571,6 +592,7 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
|||
iv_package = iv_package
|
||||
it_source = it_source
|
||||
iv_state = 'I'
|
||||
iv_version = is_progdir-uccheck
|
||||
iv_program_type = is_progdir-subc ).
|
||||
|
||||
ELSEIF sy-subrc > 0.
|
||||
|
@ -849,6 +871,8 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
|||
|
||||
ls_progdir = zcl_abapgit_factory=>get_sap_report( )->read_progdir( lv_program_name ).
|
||||
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = ls_progdir-uccheck ).
|
||||
|
||||
IF io_xml IS BOUND.
|
||||
li_xml = io_xml.
|
||||
ELSE.
|
||||
|
|
|
@ -82,13 +82,29 @@ CLASS zcl_abapgit_objects_super DEFINITION
|
|||
VALUE(iv_no_ask_delete_append) TYPE abap_bool DEFAULT abap_false
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
|
||||
METHODS set_abap_language_version
|
||||
CHANGING
|
||||
!cv_abap_language_version TYPE uccheck.
|
||||
METHODS clear_abap_language_version
|
||||
CHANGING
|
||||
!cv_abap_language_version TYPE uccheck.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECTS_SUPER IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_objects_super IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD clear_abap_language_version.
|
||||
|
||||
" Used during serializing of objects
|
||||
IF ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_any_abap_language_version.
|
||||
" ABAP language is defined in repo setting so there's no need to serialize it
|
||||
CLEAR cv_abap_language_version.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -282,6 +298,17 @@ CLASS ZCL_ABAPGIT_OBJECTS_SUPER IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD set_abap_language_version.
|
||||
|
||||
" Used during deserializing of objects
|
||||
IF ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_any_abap_language_version.
|
||||
" ABAP language is defined in repo setting so set it accordingly
|
||||
cv_abap_language_version = ms_item-abap_language_version.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD set_default_package.
|
||||
|
||||
" In certain cases we need to set the package via ABAP memory
|
||||
|
|
Loading…
Reference in New Issue
Block a user