mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 13:03:01 +08:00
AdHoc code inspection: ask user for check variant
This commit is contained in:
parent
de12ff23e2
commit
1913b7eaeb
|
@ -30,8 +30,10 @@ CLASS zcl_abapgit_gui_page_code_insp DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|||
commit TYPE string VALUE 'commit' ##NO_TEXT,
|
||||
rerun TYPE string VALUE 'rerun' ##NO_TEXT,
|
||||
END OF c_actions.
|
||||
|
||||
DATA:
|
||||
mo_stage TYPE REF TO zcl_abapgit_stage.
|
||||
mo_stage TYPE REF TO zcl_abapgit_stage,
|
||||
mv_check_variant TYPE sci_chkv.
|
||||
|
||||
METHODS:
|
||||
build_menu
|
||||
|
@ -50,7 +52,17 @@ CLASS zcl_abapgit_gui_page_code_insp DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|||
|
||||
is_stage_allowed
|
||||
RETURNING
|
||||
VALUE(rv_is_stage_allowed) TYPE abap_bool.
|
||||
VALUE(rv_is_stage_allowed) TYPE abap_bool,
|
||||
|
||||
ask_user_for_check_variant
|
||||
RETURNING
|
||||
VALUE(rv_check_variant) TYPE sci_chkv
|
||||
RAISING
|
||||
zcx_abapgit_exception,
|
||||
|
||||
determine_check_variant
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -104,6 +116,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
|
|||
mo_repo ?= io_repo.
|
||||
mo_stage = io_stage.
|
||||
ms_control-page_title = 'Code Inspector'.
|
||||
determine_check_variant( ).
|
||||
run_code_inspector( ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -127,23 +140,19 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
|
|||
|
||||
METHOD render_content.
|
||||
|
||||
DATA: lv_check_variant TYPE sci_chkv.
|
||||
|
||||
FIELD-SYMBOLS: <ls_result> TYPE scir_alvlist.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
lv_check_variant = mo_repo->get_local_settings( )-code_inspector_check_variant.
|
||||
|
||||
IF lv_check_variant IS INITIAL.
|
||||
ro_html->add( |No check variant maintained in repo settings.| ).
|
||||
IF mv_check_variant IS INITIAL.
|
||||
ro_html->add( |No check variant supplied.| ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
ro_html->add( '<div class="toc"><br/>' ).
|
||||
|
||||
ro_html->add( |Code inspector check variant: {
|
||||
mo_repo->get_local_settings( )-code_inspector_check_variant
|
||||
mv_check_variant
|
||||
}<br/>| ).
|
||||
|
||||
IF lines( mt_result ) = 0.
|
||||
|
@ -164,7 +173,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
|
|||
|
||||
METHOD run_code_inspector.
|
||||
|
||||
mt_result = mo_repo->run_code_inspector( ).
|
||||
mt_result = mo_repo->run_code_inspector( |{ mv_check_variant }| ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -257,4 +266,49 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
|
|||
ro_html = super->zif_abapgit_gui_page~render( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD ask_user_for_check_variant.
|
||||
|
||||
DATA: lt_return TYPE STANDARD TABLE OF ddshretval.
|
||||
|
||||
FIELD-SYMBOLS: <ls_return> LIKE LINE OF lt_return.
|
||||
|
||||
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
|
||||
EXPORTING
|
||||
tabname = 'SCI_DYNP'
|
||||
fieldname = 'CHKV'
|
||||
TABLES
|
||||
return_tab = lt_return
|
||||
EXCEPTIONS
|
||||
field_not_found = 1
|
||||
no_help_for_field = 2
|
||||
inconsistent_help = 3
|
||||
no_values_found = 4
|
||||
OTHERS = 5.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
READ TABLE lt_return ASSIGNING <ls_return>
|
||||
WITH KEY retfield = 'SCI_DYNP-CHKV'.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Please select a check variant.| ).
|
||||
ENDIF.
|
||||
|
||||
rv_check_variant = <ls_return>-fieldval.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD determine_check_variant.
|
||||
|
||||
mv_check_variant = mo_repo->get_local_settings( )-code_inspector_check_variant.
|
||||
|
||||
IF mv_check_variant IS INITIAL.
|
||||
mv_check_variant = ask_user_for_check_variant( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -131,7 +131,16 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
|
|||
|
||||
METHOD constructor.
|
||||
|
||||
IF iv_package IS INITIAL.
|
||||
zcx_abapgit_exception=>raise( |Please supply package| ).
|
||||
ENDIF.
|
||||
|
||||
mv_package = iv_package.
|
||||
|
||||
IF iv_check_variant_name IS INITIAL.
|
||||
zcx_abapgit_exception=>raise( |Please supply check variant| ).
|
||||
ENDIF.
|
||||
|
||||
mv_check_variant_name = iv_check_variant_name.
|
||||
|
||||
" We create the inspection and objectset with dummy names.
|
||||
|
|
|
@ -100,6 +100,8 @@ CLASS zcl_abapgit_repo DEFINITION
|
|||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS run_code_inspector
|
||||
IMPORTING
|
||||
iv_check_variant TYPE string
|
||||
RETURNING
|
||||
VALUE(rt_list) TYPE scit_alvlist
|
||||
RAISING
|
||||
|
@ -611,18 +613,11 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
|||
|
||||
METHOD run_code_inspector.
|
||||
|
||||
DATA: li_code_inspector TYPE REF TO zif_abapgit_code_inspector,
|
||||
lv_check_variant TYPE string.
|
||||
|
||||
lv_check_variant = get_local_settings( )-code_inspector_check_variant.
|
||||
|
||||
IF lv_check_variant IS INITIAL.
|
||||
zcx_abapgit_exception=>raise( |No check variant maintained in repo settings.| ).
|
||||
ENDIF.
|
||||
DATA: li_code_inspector TYPE REF TO zif_abapgit_code_inspector.
|
||||
|
||||
li_code_inspector = zcl_abapgit_factory=>get_code_inspector(
|
||||
iv_package = get_package( )
|
||||
iv_check_variant_name = |{ lv_check_variant }| ).
|
||||
iv_check_variant_name = |{ iv_check_variant }| ).
|
||||
|
||||
rt_list = li_code_inspector->run( ).
|
||||
|
||||
|
|
|
@ -8,8 +8,10 @@ CLASS ltcl_code_inspector DEFINITION FOR TESTING.
|
|||
constructor
|
||||
IMPORTING
|
||||
iv_package TYPE devclass.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA mv_package TYPE devclass.
|
||||
DATA:
|
||||
mv_package TYPE devclass.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -49,7 +51,8 @@ CLASS ltcl_run_code_inspection DEFINITION FINAL FOR TESTING
|
|||
DATA:
|
||||
mo_repo_online TYPE REF TO zcl_abapgit_repo_online,
|
||||
mv_error_text TYPE string,
|
||||
mt_act_list TYPE scit_alvlist.
|
||||
mt_act_list TYPE scit_alvlist,
|
||||
mv_check_variant TYPE string.
|
||||
|
||||
METHODS:
|
||||
exception_when_no_check_var FOR TESTING RAISING cx_static_check,
|
||||
|
@ -99,7 +102,7 @@ CLASS ltcl_run_code_inspection IMPLEMENTATION.
|
|||
given_online_repo( iv_package = '$DUMMY' ).
|
||||
given_check_variant( || ).
|
||||
when_run_code_inspector( ).
|
||||
then_exception_text_is( |No check variant maintained in repo settings.| ).
|
||||
then_exception_text_is( |Please supply check variant| ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -143,6 +146,7 @@ CLASS ltcl_run_code_inspection IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD given_check_variant.
|
||||
mv_check_variant = iv_check_variant.
|
||||
mo_repo_online->ms_data-local_settings-code_inspector_check_variant = iv_check_variant.
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -213,7 +217,7 @@ CLASS ltcl_run_code_inspection IMPLEMENTATION.
|
|||
DATA: lx_error TYPE REF TO zcx_abapgit_exception.
|
||||
|
||||
TRY.
|
||||
mt_act_list = mo_repo_online->run_code_inspector( ).
|
||||
mt_act_list = mo_repo_online->run_code_inspector( |{ mv_check_variant }| ).
|
||||
CATCH zcx_abapgit_exception INTO lx_error.
|
||||
mv_error_text = lx_error->get_text( ).
|
||||
ENDTRY.
|
||||
|
|
Loading…
Reference in New Issue
Block a user