From 5182ed6213522a6429930baf8a69884803476d53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Thu, 23 Jan 2025 12:10:56 +0100 Subject: [PATCH 1/3] Patch: fix 'invalid filename' error if filename is empty (#7126) Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com> --- src/ui/pages/zcl_abapgit_gui_page_patch.clas.abap | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ui/pages/zcl_abapgit_gui_page_patch.clas.abap b/src/ui/pages/zcl_abapgit_gui_page_patch.clas.abap index 9391f8a5a..922f9e049 100644 --- a/src/ui/pages/zcl_abapgit_gui_page_patch.clas.abap +++ b/src/ui/pages/zcl_abapgit_gui_page_patch.clas.abap @@ -528,7 +528,10 @@ CLASS zcl_abapgit_gui_page_patch IMPLEMENTATION. lv_patched TYPE abap_bool, lv_is_patch_possible TYPE abap_bool. - lv_patched = get_diff_object( iv_filename )->is_line_patched( iv_index ). + " In case an object is falsely detected as changed, filename is empty and there's no diff object + IF iv_filename IS NOT INITIAL. + lv_patched = get_diff_object( iv_filename )->is_line_patched( iv_index ). + ENDIF. lv_is_patch_possible = is_patch_line_possible( is_diff_line ). From c08d33bb4a643e5022b2b2c0192379715a8ffd24 Mon Sep 17 00:00:00 2001 From: Fabian Lupa Date: Thu, 23 Jan 2025 21:23:25 +0100 Subject: [PATCH 2/3] Enable ABAP Language Version support for DDLS (#7134) Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com> --- src/objects/zcl_abapgit_object_ddls.clas.abap | 59 +++++++++++++------ 1 file changed, 40 insertions(+), 19 deletions(-) diff --git a/src/objects/zcl_abapgit_object_ddls.clas.abap b/src/objects/zcl_abapgit_object_ddls.clas.abap index e91b09de8..063a003a4 100644 --- a/src/objects/zcl_abapgit_object_ddls.clas.abap +++ b/src/objects/zcl_abapgit_object_ddls.clas.abap @@ -276,11 +276,12 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION. lx_error TYPE REF TO cx_root. FIELD-SYMBOLS: - TYPE any, - TYPE any, - TYPE any, - TYPE any, - TYPE any. + TYPE any, + TYPE any, + TYPE any, + TYPE any, + TYPE any, + TYPE any. TRY. CREATE DATA lr_data TYPE ('DDDDLSRCV'). @@ -293,6 +294,11 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION. ASSERT sy-subrc = 0. = mo_files->read_string( 'asddls' ). + ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE TO . + IF sy-subrc = 0. + set_abap_language_version( CHANGING cv_abap_language_version = ). + ENDIF. + CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE') RECEIVING handler = lo_ddl. @@ -310,12 +316,22 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION. ASSERT sy-subrc = 0. = ms_item-obj_name. - CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE') - EXPORTING - name = ms_item-obj_name - put_state = 'N' - ddddlsrcv_wa = - baseinfo_string = . + TRY. + CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE') + EXPORTING + name = ms_item-obj_name + put_state = 'N' + ddddlsrcv_wa = + baseinfo_string = + save_language_version = abap_true. + CATCH cx_sy_dyn_call_param_not_found. + CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE') + EXPORTING + name = ms_item-obj_name + put_state = 'N' + ddddlsrcv_wa = + baseinfo_string = . + ENDTRY. ELSE. CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE') EXPORTING @@ -447,13 +463,14 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION. lt_clr_comps TYPE STANDARD TABLE OF fieldname WITH DEFAULT KEY, lx_error TYPE REF TO cx_root. - FIELD-SYMBOLS: TYPE any, - TYPE any, - LIKE LINE OF lt_clr_comps, - TYPE ANY TABLE, - TYPE any, - TYPE any, - TYPE any. + FIELD-SYMBOLS: TYPE any, + TYPE any, + LIKE LINE OF lt_clr_comps, + TYPE ANY TABLE, + TYPE any, + TYPE any, + TYPE any, + TYPE any. TRY. @@ -506,12 +523,16 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION. zcx_abapgit_exception=>raise_with_text( lx_error ). ENDTRY. + ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE TO . + IF sy-subrc = 0. + clear_abap_language_version( CHANGING cv_abap_language_version = ). + ENDIF. + APPEND 'AS4USER' TO lt_clr_comps. APPEND 'AS4DATE' TO lt_clr_comps. APPEND 'AS4TIME' TO lt_clr_comps. APPEND 'ACTFLAG' TO lt_clr_comps. APPEND 'CHGFLAG' TO lt_clr_comps. - APPEND 'ABAP_LANGUAGE_VERSION' TO lt_clr_comps. APPEND 'ABAP_LANGU_VERSION' TO lt_clr_comps. LOOP AT lt_clr_comps ASSIGNING . From 99fe0f52403c71f1e56cab7406e56878617cb80f Mon Sep 17 00:00:00 2001 From: Fabian Lupa Date: Thu, 23 Jan 2025 21:29:14 +0100 Subject: [PATCH 3/3] Enable ABAP Language Version support for DCLS (#7135) Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com> --- src/objects/zcl_abapgit_object_dcls.clas.abap | 40 ++++++++++++++----- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/src/objects/zcl_abapgit_object_dcls.clas.abap b/src/objects/zcl_abapgit_object_dcls.clas.abap index 74addfb1c..ec71a8a97 100644 --- a/src/objects/zcl_abapgit_object_dcls.clas.abap +++ b/src/objects/zcl_abapgit_object_dcls.clas.abap @@ -70,9 +70,10 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION. METHOD zif_abapgit_object~deserialize. - DATA: lr_data TYPE REF TO data, - lo_dcl TYPE REF TO object, - lx_error TYPE REF TO cx_root. + DATA: lr_data TYPE REF TO data, + lo_dcl TYPE REF TO object, + lx_error TYPE REF TO cx_root, + lv_abap_language_version TYPE uccheck. FIELD-SYMBOLS: TYPE any, TYPE any. @@ -91,6 +92,12 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION. ASSERT sy-subrc = 0. = mo_files->read_string( 'asdcls' ). + ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE TO . + IF sy-subrc = 0. + lv_abap_language_version = . + set_abap_language_version( CHANGING cv_abap_language_version = lv_abap_language_version ). + ENDIF. + TRY. tadir_insert( iv_package ). @@ -98,13 +105,24 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION. RECEIVING ro_handler = lo_dcl. - CALL METHOD lo_dcl->('SAVE') - EXPORTING - iv_dclname = ms_item-obj_name - iv_put_state = 'I' - is_dclsrc = - iv_devclass = iv_package - iv_access_mode = 'INSERT'. + TRY. + CALL METHOD lo_dcl->('SAVE') + EXPORTING + iv_dclname = ms_item-obj_name + iv_put_state = 'I' + is_dclsrc = + 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 = + iv_devclass = iv_package + iv_access_mode = 'INSERT'. + ENDTRY. CATCH cx_root INTO 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 TO . IF sy-subrc = 0. - CLEAR . + clear_abap_language_version( CHANGING cv_abap_language_version = ). ENDIF. ASSIGN COMPONENT 'SOURCE' OF STRUCTURE TO .