From 152ae1d59c64be54df556a2b83308df6b665e974 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Wed, 6 Sep 2023 09:28:42 -0400 Subject: [PATCH] Consolidate `READ/UPDATE_PROGDIR` calls (#6464) --- .../sap/zcl_abapgit_sap_report.clas.abap | 128 +++++++++++++--- .../sap/zif_abapgit_sap_report.intf.abap | 53 ++++++- src/objects/zcl_abapgit_object_fugr.clas.abap | 9 +- src/objects/zcl_abapgit_object_prog.clas.abap | 21 +-- .../zcl_abapgit_objects_program.clas.abap | 143 +----------------- .../zcl_abapgit_abap_language_vers.clas.abap | 17 ++- 6 files changed, 185 insertions(+), 186 deletions(-) diff --git a/src/objects/sap/zcl_abapgit_sap_report.clas.abap b/src/objects/sap/zcl_abapgit_sap_report.clas.abap index c14d02201..4eca64144 100644 --- a/src/objects/sap/zcl_abapgit_sap_report.clas.abap +++ b/src/objects/sap/zcl_abapgit_sap_report.clas.abap @@ -13,15 +13,14 @@ CLASS zcl_abapgit_sap_report DEFINITION METHODS get_language_version IMPORTING iv_package TYPE devclass - iv_version TYPE zif_abapgit_sap_report=>ty_abap_language_version RETURNING - VALUE(rv_version) TYPE zif_abapgit_sap_report=>ty_abap_language_version. + VALUE(rv_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version. METHODS authorization_check IMPORTING iv_mode TYPE csequence is_item TYPE zif_abapgit_definitions=>ty_item - iv_version TYPE zif_abapgit_sap_report=>ty_abap_language_version OPTIONAL + iv_version TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version OPTIONAL RAISING zcx_abapgit_exception. @@ -65,16 +64,14 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION. METHOD get_language_version. - ASSERT iv_version CA ' X25'. - " 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 = '5'. " abap_for_cloud_development + rv_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-cloud_development. ELSE. - rv_version = 'X'. " standard_abap + rv_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard. ENDIF. ENDMETHOD. @@ -97,46 +94,76 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION. METHOD zif_abapgit_sap_report~insert_report. - DATA lv_version TYPE zif_abapgit_sap_report=>ty_abap_language_version ##NEEDED. + 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 = iv_package - iv_version = iv_version ). + lv_version = get_language_version( iv_package ). authorization_check( iv_mode = 'MODIFY' is_item = is_item iv_version = lv_version ). - " TODO: Add `VERSION lv_version` but it's not supported in lower releases IF iv_state IS INITIAL. INSERT REPORT iv_name FROM it_source. - "VERSION lv_version. ELSEIF iv_program_type IS INITIAL AND iv_extension_type IS INITIAL. INSERT REPORT iv_name FROM it_source STATE iv_state. - "VERSION lv_version. ELSEIF iv_extension_type IS INITIAL. INSERT REPORT iv_name FROM it_source STATE iv_state PROGRAM TYPE iv_program_type. - "VERSION lv_version. ELSE. INSERT REPORT iv_name FROM it_source STATE iv_state EXTENSION TYPE iv_extension_type PROGRAM TYPE iv_program_type. - "VERSION lv_version. ENDIF. IF sy-subrc <> 0. zcx_abapgit_exception=>raise( |Error inserting report { iv_name }| ). ENDIF. + " 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. + + ENDMETHOD. + + + METHOD zif_abapgit_sap_report~read_progdir. + + DATA ls_sapdir TYPE progdir. + + CALL FUNCTION 'READ_PROGDIR' + EXPORTING + i_progname = iv_name + i_state = iv_state + IMPORTING + e_progdir = ls_sapdir. + + MOVE-CORRESPONDING ls_sapdir TO rs_progdir. + + CLEAR: rs_progdir-edtx, + rs_progdir-cnam, + rs_progdir-cdat, + rs_progdir-unam, + rs_progdir-udat, + rs_progdir-levl, + rs_progdir-vern, + rs_progdir-rmand, + rs_progdir-sdate, + rs_progdir-stime, + rs_progdir-idate, + rs_progdir-itime, + rs_progdir-varcl, + rs_progdir-state. + + " TODO: Clear UCCHECK + ENDMETHOD. @@ -161,6 +188,60 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION. ENDMETHOD. + METHOD zif_abapgit_sap_report~update_progdir. + + DATA ls_progdir_new TYPE progdir. + + CALL FUNCTION 'READ_PROGDIR' + EXPORTING + i_progname = is_progdir-name + i_state = iv_state + IMPORTING + e_progdir = ls_progdir_new + EXCEPTIONS + not_exists = 1 + OTHERS = 2. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'Error reading program directory' ). + ENDIF. + + ls_progdir_new-ldbname = is_progdir-ldbname. + ls_progdir_new-dbna = is_progdir-dbna. + ls_progdir_new-dbapl = is_progdir-dbapl. + ls_progdir_new-rload = is_progdir-rload. + ls_progdir_new-fixpt = is_progdir-fixpt. + ls_progdir_new-appl = is_progdir-appl. + ls_progdir_new-rstat = is_progdir-rstat. + ls_progdir_new-uccheck = is_progdir-uccheck. " TODO: replace with get_language_version() + ls_progdir_new-sqlx = is_progdir-sqlx. + ls_progdir_new-clas = is_progdir-clas. + ls_progdir_new-secu = is_progdir-secu. + + CALL FUNCTION 'UPDATE_PROGDIR' + EXPORTING + i_progdir = ls_progdir_new + i_progname = ls_progdir_new-name + i_state = ls_progdir_new-state + EXCEPTIONS + not_executed = 1 + OTHERS = 2. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'Error updating program directory' ). + ENDIF. + + " Function UPDATE_PROGDIR does not update VARCL, so we do it here + SELECT SINGLE * FROM progdir INTO ls_progdir_new + WHERE name = ls_progdir_new-name + AND state = ls_progdir_new-state. + IF sy-subrc = 0 AND is_progdir-varcl <> ls_progdir_new-varcl. + UPDATE progdir SET varcl = is_progdir-varcl + WHERE name = ls_progdir_new-name + AND state = ls_progdir_new-state. "#EC CI_SUBRC + ENDIF. + + ENDMETHOD. + + METHOD zif_abapgit_sap_report~update_report. DATA lt_new TYPE string_table. @@ -171,14 +252,13 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION. IF lt_old <> lt_new. zif_abapgit_sap_report~insert_report( - iv_name = iv_name - it_source = it_source - iv_state = iv_state - iv_program_type = iv_program_type - iv_extension_type = iv_extension_type - iv_package = iv_package - iv_version = iv_version - is_item = is_item ). + iv_name = iv_name + it_source = it_source + iv_state = iv_state + iv_program_type = iv_program_type + iv_extension_type = iv_extension_type + iv_package = iv_package + is_item = is_item ). rv_updated = abap_true. ELSE. diff --git a/src/objects/sap/zif_abapgit_sap_report.intf.abap b/src/objects/sap/zif_abapgit_sap_report.intf.abap index a01bdd28f..c28fe6f93 100644 --- a/src/objects/sap/zif_abapgit_sap_report.intf.abap +++ b/src/objects/sap/zif_abapgit_sap_report.intf.abap @@ -2,7 +2,38 @@ INTERFACE zif_abapgit_sap_report PUBLIC. TYPES: - ty_abap_language_version TYPE c LENGTH 1. + BEGIN OF ty_progdir, + name TYPE progdir-name, + state TYPE progdir-state, + sqlx TYPE progdir-sqlx, + edtx TYPE progdir-edtx, + varcl TYPE progdir-varcl, + dbapl TYPE progdir-dbapl, + dbna TYPE progdir-dbna, + clas TYPE progdir-clas, + type TYPE progdir-type, + occurs TYPE progdir-occurs, + subc TYPE progdir-subc, + appl TYPE progdir-appl, + secu TYPE progdir-secu, + cnam TYPE progdir-cnam, + cdat TYPE progdir-cdat, + unam TYPE progdir-unam, + udat TYPE progdir-udat, + vern TYPE progdir-vern, + levl TYPE progdir-levl, + rstat TYPE progdir-rstat, + rmand TYPE progdir-rmand, + rload TYPE progdir-rload, + fixpt TYPE progdir-fixpt, + sset TYPE progdir-sset, + sdate TYPE progdir-sdate, + stime TYPE progdir-stime, + idate TYPE progdir-idate, + itime TYPE progdir-itime, + ldbname TYPE progdir-ldbname, + uccheck TYPE progdir-uccheck, + END OF ty_progdir. METHODS read_report IMPORTING @@ -22,7 +53,6 @@ INTERFACE zif_abapgit_sap_report iv_program_type TYPE c OPTIONAL iv_extension_type TYPE c OPTIONAL iv_package TYPE devclass - iv_version TYPE ty_abap_language_version OPTIONAL is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL RAISING zcx_abapgit_exception. @@ -35,7 +65,6 @@ INTERFACE zif_abapgit_sap_report iv_program_type TYPE c OPTIONAL iv_extension_type TYPE c OPTIONAL iv_package TYPE devclass - iv_version TYPE ty_abap_language_version OPTIONAL is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL RETURNING VALUE(rv_updated) TYPE abap_bool @@ -46,9 +75,25 @@ INTERFACE zif_abapgit_sap_report IMPORTING iv_name TYPE syrepid iv_raise_error TYPE abap_bool DEFAULT abap_false - iv_version TYPE ty_abap_language_version OPTIONAL is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL RAISING zcx_abapgit_exception. + METHODS read_progdir + IMPORTING + iv_name TYPE syrepid + iv_state TYPE r3state DEFAULT 'A' + RETURNING + VALUE(rs_progdir) TYPE ty_progdir + RAISING + zcx_abapgit_exception. + + METHODS update_progdir + IMPORTING + is_progdir TYPE ty_progdir + iv_package TYPE devclass + iv_state TYPE r3state DEFAULT 'I' + RAISING + zcx_abapgit_exception. + ENDINTERFACE. diff --git a/src/objects/zcl_abapgit_object_fugr.clas.abap b/src/objects/zcl_abapgit_object_fugr.clas.abap index 0f6d9330e..b8ea83c7b 100644 --- a/src/objects/zcl_abapgit_object_fugr.clas.abap +++ b/src/objects/zcl_abapgit_object_fugr.clas.abap @@ -362,7 +362,7 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION. METHOD deserialize_includes. DATA: lo_xml TYPE REF TO zif_abapgit_xml_input, - ls_progdir TYPE ty_progdir, + ls_progdir TYPE zif_abapgit_sap_report=>ty_progdir, lt_includes TYPE ty_sobj_name_tt, lt_tpool TYPE textpool_table, lt_tpool_ext TYPE zif_abapgit_definitions=>ty_tpool_tt, @@ -548,7 +548,7 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION. METHOD get_abap_version. DATA: lt_includes TYPE ty_sobj_name_tt, - ls_progdir TYPE ty_progdir, + ls_progdir TYPE zif_abapgit_sap_report=>ty_progdir, lo_xml TYPE REF TO zif_abapgit_xml_input. FIELD-SYMBOLS: LIKE LINE OF lt_includes. @@ -1369,7 +1369,7 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION. * function group SUNI DATA: lt_functions TYPE ty_function_tt, - ls_progdir TYPE ty_progdir, + ls_progdir TYPE zif_abapgit_sap_report=>ty_progdir, lv_program_name TYPE syrepid, lt_dynpros TYPE ty_dynpro_tt, ls_cua TYPE ty_cua. @@ -1388,7 +1388,8 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION. serialize_includes( ). lv_program_name = main_name( ). - ls_progdir = read_progdir( lv_program_name ). + + ls_progdir = zcl_abapgit_factory=>get_sap_report( )->read_progdir( lv_program_name ). IF mo_i18n_params->is_lxe_applicable( ) = abap_false. serialize_texts( diff --git a/src/objects/zcl_abapgit_object_prog.clas.abap b/src/objects/zcl_abapgit_object_prog.clas.abap index 608b247e6..2c88aef8f 100644 --- a/src/objects/zcl_abapgit_object_prog.clas.abap +++ b/src/objects/zcl_abapgit_object_prog.clas.abap @@ -17,7 +17,7 @@ CLASS zcl_abapgit_object_prog DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje METHODS deserialize_with_ext IMPORTING - !is_progdir TYPE ty_progdir + !is_progdir TYPE zif_abapgit_sap_report=>ty_progdir !it_source TYPE abaptxt255_tab !iv_package TYPE devclass RAISING @@ -41,7 +41,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_OBJECT_PROG IMPLEMENTATION. +CLASS zcl_abapgit_object_prog IMPLEMENTATION. METHOD deserialize_texts. @@ -81,17 +81,10 @@ CLASS ZCL_ABAPGIT_OBJECT_PROG IMPLEMENTATION. iv_program_type = is_progdir-subc iv_extension_type = is_progdir-name+30 ). - CALL FUNCTION 'UPDATE_PROGDIR' - EXPORTING - i_progdir = is_progdir - i_progname = is_progdir-name - i_state = 'I' - EXCEPTIONS - not_executed = 1 - OTHERS = 2. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'Error updating program directory' ). - ENDIF. + zcl_abapgit_factory=>get_sap_report( )->update_progdir( + is_progdir = is_progdir + iv_state = 'I' + iv_package = iv_package ). zcl_abapgit_objects_activation=>add( iv_type = 'REPS' @@ -213,7 +206,7 @@ CLASS ZCL_ABAPGIT_OBJECT_PROG IMPLEMENTATION. METHOD zif_abapgit_object~deserialize. DATA: lv_program_name TYPE syrepid, - ls_progdir TYPE ty_progdir, + ls_progdir TYPE zif_abapgit_sap_report=>ty_progdir, lt_tpool TYPE textpool_table, lt_dynpros TYPE ty_dynpro_tt, lt_tpool_ext TYPE zif_abapgit_definitions=>ty_tpool_tt, diff --git a/src/objects/zcl_abapgit_objects_program.clas.abap b/src/objects/zcl_abapgit_objects_program.clas.abap index e397842d1..437d74b3a 100644 --- a/src/objects/zcl_abapgit_objects_program.clas.abap +++ b/src/objects/zcl_abapgit_objects_program.clas.abap @@ -5,39 +5,6 @@ CLASS zcl_abapgit_objects_program DEFINITION PUBLIC SECTION. - TYPES: - BEGIN OF ty_progdir, - name TYPE progdir-name, - state TYPE progdir-state, - sqlx TYPE progdir-sqlx, - edtx TYPE progdir-edtx, - varcl TYPE progdir-varcl, - dbapl TYPE progdir-dbapl, - dbna TYPE progdir-dbna, - clas TYPE progdir-clas, - type TYPE progdir-type, - occurs TYPE progdir-occurs, - subc TYPE progdir-subc, - appl TYPE progdir-appl, - secu TYPE progdir-secu, - cnam TYPE progdir-cnam, - cdat TYPE progdir-cdat, - unam TYPE progdir-unam, - udat TYPE progdir-udat, - vern TYPE progdir-vern, - levl TYPE progdir-levl, - rstat TYPE progdir-rstat, - rmand TYPE progdir-rmand, - rload TYPE progdir-rload, - fixpt TYPE progdir-fixpt, - sset TYPE progdir-sset, - sdate TYPE progdir-sdate, - stime TYPE progdir-stime, - idate TYPE progdir-idate, - itime TYPE progdir-itime, - ldbname TYPE progdir-ldbname, - uccheck TYPE progdir-uccheck, - END OF ty_progdir. TYPES: BEGIN OF ty_cua, adm TYPE rsmpe_adm, @@ -63,14 +30,9 @@ CLASS zcl_abapgit_objects_program DEFINITION !iv_extra TYPE clike OPTIONAL RAISING zcx_abapgit_exception. - METHODS read_progdir - IMPORTING - !iv_program TYPE syrepid - RETURNING - VALUE(rs_progdir) TYPE ty_progdir. METHODS deserialize_program IMPORTING - !is_progdir TYPE ty_progdir + !is_progdir TYPE zif_abapgit_sap_report=>ty_progdir !it_source TYPE abaptxt255_tab !it_tpool TYPE textpool_table !iv_package TYPE devclass @@ -178,7 +140,7 @@ CLASS zcl_abapgit_objects_program DEFINITION VALUE(rv_title) TYPE repti . METHODS insert_program IMPORTING - !is_progdir TYPE ty_progdir + !is_progdir TYPE zif_abapgit_sap_report=>ty_progdir !it_source TYPE abaptxt255_tab !iv_title TYPE repti !iv_package TYPE devclass @@ -186,16 +148,11 @@ CLASS zcl_abapgit_objects_program DEFINITION zcx_abapgit_exception . METHODS update_program IMPORTING - !is_progdir TYPE ty_progdir + !is_progdir TYPE zif_abapgit_sap_report=>ty_progdir !it_source TYPE abaptxt255_tab !iv_title TYPE repti RAISING zcx_abapgit_exception . - METHODS update_progdir - IMPORTING - !is_progdir TYPE ty_progdir - RAISING - zcx_abapgit_exception . ENDCLASS. @@ -497,7 +454,9 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION. iv_package = iv_package ). ENDIF. - update_progdir( is_progdir ). + zcl_abapgit_factory=>get_sap_report( )->update_progdir( + is_progdir = is_progdir + iv_package = iv_package ). zcl_abapgit_objects_activation=>add( iv_type = 'REPS' @@ -671,37 +630,6 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION. ENDMETHOD. - METHOD read_progdir. - - DATA: ls_sapdir TYPE progdir. - - - CALL FUNCTION 'READ_PROGDIR' - EXPORTING - i_progname = iv_program - i_state = 'A' - IMPORTING - e_progdir = ls_sapdir. - MOVE-CORRESPONDING ls_sapdir TO rs_progdir. - - CLEAR: rs_progdir-edtx, - rs_progdir-cnam, - rs_progdir-cdat, - rs_progdir-unam, - rs_progdir-udat, - rs_progdir-levl, - rs_progdir-vern, - rs_progdir-rmand, - rs_progdir-sdate, - rs_progdir-stime, - rs_progdir-idate, - rs_progdir-itime, - rs_progdir-varcl, - rs_progdir-state. - - ENDMETHOD. - - METHOD read_tpool. FIELD-SYMBOLS: LIKE LINE OF it_tpool, @@ -878,7 +806,7 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION. METHOD serialize_program. - DATA: ls_progdir TYPE ty_progdir, + DATA: ls_progdir TYPE zif_abapgit_sap_report=>ty_progdir, lv_program_name TYPE syrepid, lt_dynpros TYPE ty_dynpro_tt, ls_cua TYPE ty_cua, @@ -919,7 +847,7 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION. zcl_abapgit_language=>restore_login_language( ). - ls_progdir = read_progdir( lv_program_name ). + ls_progdir = zcl_abapgit_factory=>get_sap_report( )->read_progdir( lv_program_name ). IF io_xml IS BOUND. li_xml = io_xml. @@ -1039,61 +967,6 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION. ENDMETHOD. - METHOD update_progdir. - - DATA ls_progdir_new TYPE progdir. - - CALL FUNCTION 'READ_PROGDIR' - EXPORTING - i_progname = is_progdir-name - i_state = 'I' - IMPORTING - e_progdir = ls_progdir_new - EXCEPTIONS - not_exists = 1 - OTHERS = 2. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'Error reading program directory' ). - ENDIF. - - ls_progdir_new-ldbname = is_progdir-ldbname. - ls_progdir_new-dbna = is_progdir-dbna. - ls_progdir_new-dbapl = is_progdir-dbapl. - ls_progdir_new-rload = is_progdir-rload. - ls_progdir_new-fixpt = is_progdir-fixpt. - ls_progdir_new-varcl = is_progdir-varcl. - ls_progdir_new-appl = is_progdir-appl. - ls_progdir_new-rstat = is_progdir-rstat. - ls_progdir_new-sqlx = is_progdir-sqlx. - ls_progdir_new-uccheck = is_progdir-uccheck. - ls_progdir_new-clas = is_progdir-clas. - ls_progdir_new-secu = is_progdir-secu. - - CALL FUNCTION 'UPDATE_PROGDIR' - EXPORTING - i_progdir = ls_progdir_new - i_progname = ls_progdir_new-name - i_state = ls_progdir_new-state - EXCEPTIONS - not_executed = 1 - OTHERS = 2. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'Error updating program directory' ). - ENDIF. - - " function UPDATE_PROGDIR does not update VARCL, so we do it here - SELECT SINGLE * FROM progdir INTO ls_progdir_new - WHERE name = ls_progdir_new-name - AND state = ls_progdir_new-state. - IF sy-subrc = 0 AND is_progdir-varcl <> ls_progdir_new-varcl. - UPDATE progdir SET varcl = is_progdir-varcl - WHERE name = ls_progdir_new-name - AND state = ls_progdir_new-state. "#EC CI_SUBRC - ENDIF. - - ENDMETHOD. - - METHOD update_program. zcl_abapgit_language=>set_current_language( mv_language ). diff --git a/src/utils/zcl_abapgit_abap_language_vers.clas.abap b/src/utils/zcl_abapgit_abap_language_vers.clas.abap index 501c14860..7d51e3e38 100644 --- a/src/utils/zcl_abapgit_abap_language_vers.clas.abap +++ b/src/utils/zcl_abapgit_abap_language_vers.clas.abap @@ -1,22 +1,26 @@ CLASS zcl_abapgit_abap_language_vers DEFINITION PUBLIC FINAL - CREATE PUBLIC . + CREATE PUBLIC. PUBLIC SECTION. + CONSTANTS c_feature_flag TYPE string VALUE 'ALAV'. + METHODS get_abap_language_vers_by_objt IMPORTING !iv_object_type TYPE trobjtype !iv_package TYPE devclass RETURNING - VALUE(rv_allowed_abap_langu_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version . + VALUE(rv_allowed_abap_langu_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version. + METHODS is_import_allowed IMPORTING !io_repo TYPE REF TO zif_abapgit_repo !iv_package TYPE devclass RETURNING - VALUE(rv_allowed) TYPE abap_bool . + VALUE(rv_allowed) TYPE abap_bool. + PROTECTED SECTION. PRIVATE SECTION. @@ -24,12 +28,14 @@ CLASS zcl_abapgit_abap_language_vers DEFINITION IMPORTING !iv_package TYPE devclass RETURNING - VALUE(rv_abap_language_version) TYPE string . + VALUE(rv_abap_language_version) TYPE string. + METHODS get_abap_language_vers_by_repo IMPORTING !io_repo TYPE REF TO zif_abapgit_repo RETURNING - VALUE(rv_abap_language_version) TYPE string . + VALUE(rv_abap_language_version) TYPE string. + ENDCLASS. @@ -70,6 +76,7 @@ CLASS zcl_abapgit_abap_language_vers IMPLEMENTATION. CATCH cx_root. rv_abap_language_version = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined. ENDTRY. + ENDMETHOD.