Enable ABAP Language Version support for DCLS

This commit is contained in:
Fabian Lupa 2025-01-17 14:17:51 +00:00
parent fd38cd873c
commit 86092a39c7

View File

@ -70,9 +70,10 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
METHOD zif_abapgit_object~deserialize. METHOD zif_abapgit_object~deserialize.
DATA: lr_data TYPE REF TO data, DATA: lr_data TYPE REF TO data,
lo_dcl TYPE REF TO object, lo_dcl TYPE REF TO object,
lx_error TYPE REF TO cx_root. lx_error TYPE REF TO cx_root,
lv_abap_language_version TYPE uccheck.
FIELD-SYMBOLS: <lg_data> TYPE any, FIELD-SYMBOLS: <lg_data> TYPE any,
<lg_field> TYPE any. <lg_field> TYPE any.
@ -91,6 +92,12 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
ASSERT sy-subrc = 0. ASSERT sy-subrc = 0.
<lg_field> = mo_files->read_string( 'asdcls' ). <lg_field> = mo_files->read_string( 'asdcls' ).
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_field>.
IF sy-subrc = 0.
lv_abap_language_version = <lg_field>.
set_abap_language_version( CHANGING cv_abap_language_version = lv_abap_language_version ).
ENDIF.
TRY. TRY.
tadir_insert( iv_package ). tadir_insert( iv_package ).
@ -98,13 +105,24 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
RECEIVING RECEIVING
ro_handler = lo_dcl. ro_handler = lo_dcl.
CALL METHOD lo_dcl->('SAVE') TRY.
EXPORTING CALL METHOD lo_dcl->('SAVE')
iv_dclname = ms_item-obj_name EXPORTING
iv_put_state = 'I' iv_dclname = ms_item-obj_name
is_dclsrc = <lg_data> iv_put_state = 'I'
iv_devclass = iv_package is_dclsrc = <lg_data>
iv_access_mode = 'INSERT'. iv_devclass = iv_package
iv_access_mode = 'INSERT'
iv_abap_language_version = lv_abap_language_version.
CATCH cx_sy_dyn_call_param_not_found.
CALL METHOD lo_dcl->('SAVE')
EXPORTING
iv_dclname = ms_item-obj_name
iv_put_state = 'I'
is_dclsrc = <lg_data>
iv_devclass = iv_package
iv_access_mode = 'INSERT'.
ENDTRY.
CATCH cx_root INTO lx_error. CATCH cx_root INTO lx_error.
zcx_abapgit_exception=>raise_with_text( lx_error ). zcx_abapgit_exception=>raise_with_text( lx_error ).
@ -236,7 +254,7 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_field>. ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_field>.
IF sy-subrc = 0. IF sy-subrc = 0.
CLEAR <lg_field>. clear_abap_language_version( CHANGING cv_abap_language_version = <lg_field> ).
ENDIF. ENDIF.
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <lg_data> TO <lg_field>. ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.