Handle ABAP Language Version for source code objects (#6476)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2023-10-08 03:07:34 -04:00 committed by GitHub
parent a7b100c366
commit cbd3cb3311
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 146 additions and 58 deletions

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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.

View File

@ -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

View File

@ -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( ).

View File

@ -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 ).

View File

@ -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.

View File

@ -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.

View File

@ -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 ).

View File

@ -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)

View File

@ -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.

View File

@ -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.

View File

@ -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