diff --git a/changelog.txt b/changelog.txt index 7bbf0597..d576e9cd 100644 --- a/changelog.txt +++ b/changelog.txt @@ -10,6 +10,7 @@ Legend 2020-10-10 v1.05.0 ------------------ +* profile message check runs only once ! check messages - db access in ut when OSQL/CDS framework is being used ! category description diff --git a/src/checks/y_check_profile_message.clas.abap b/src/checks/y_check_profile_message.clas.abap index 6d8a176b..a745b76a 100644 --- a/src/checks/y_check_profile_message.clas.abap +++ b/src/checks/y_check_profile_message.clas.abap @@ -7,7 +7,12 @@ CLASS y_check_profile_message DEFINITION PROTECTED SECTION. METHODS execute_check REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS inform REDEFINITION. PRIVATE SECTION. + CLASS-DATA ran TYPE abap_bool. + METHODS get_profiles RETURNING VALUE(result) TYPE y_if_profile_manager=>profile_assignments. + METHODS list_profiles IMPORTING profiles TYPE y_if_profile_manager=>profile_assignments + RETURNING value(result) TYPE string. ENDCLASS. CLASS y_check_profile_message IMPLEMENTATION. @@ -26,12 +31,13 @@ CLASS y_check_profile_message IMPLEMENTATION. settings-apply_on_productive_code = abap_true. settings-prio = c_note. - set_check_message( 'code pal for ABAP Profile is being used.' ). + set_check_message( '&1 Profile(s) in use: &2.' ). ENDMETHOD. METHOD execute_check. + CHECK ran = abap_false. CHECK has_attributes = abap_false. DATA(check_configuration) = detect_check_configuration( VALUE #( level = 1 ) ). @@ -40,10 +46,16 @@ CLASS y_check_profile_message IMPLEMENTATION. RETURN. ENDIF. + DATA(profiles) = get_profiles( ). + raise_error( statement_level = 1 statement_index = 1 statement_from = 1 - error_priority = check_configuration-prio ). + error_priority = check_configuration-prio + parameter_01 = |{ lines( profiles ) }| + parameter_02 = |{ list_profiles( profiles ) }| ). + + ran = abap_true. ENDMETHOD. @@ -53,4 +65,45 @@ CLASS y_check_profile_message IMPLEMENTATION. ENDMETHOD. + METHOD inform. + super->inform( p_sub_obj_type = 'TRAN' + p_sub_obj_name = 'Y_CODE_PAL_PROFILE' + p_position = '' + p_line = '' + p_column = '' + p_errcnt = p_errcnt + p_kind = p_kind + p_test = p_test + p_code = p_code + p_suppress = p_suppress + p_param_1 = p_param_1 + p_param_2 = p_param_2 + p_param_3 = p_param_3 + p_param_4 = p_param_4 + p_inclspec = p_inclspec + p_detail = p_detail + p_checksum_1 = p_checksum_1 + p_comments = p_comments + p_finding_origins = p_finding_origins ). + ENDMETHOD. + + + METHOD get_profiles. + TRY. + result = y_profile_manager=>create( )->select_profiles( sy-uname ). + CATCH ycx_entry_not_found. + RETURN. + ENDTRY. + + ENDMETHOD. + + + METHOD list_profiles. + LOOP AT profiles ASSIGNING FIELD-SYMBOL(). + result = COND #( WHEN result IS INITIAL THEN -profile + ELSE |{ result }, { -profile }| ). + ENDLOOP. + ENDMETHOD. + + ENDCLASS. diff --git a/src/checks/y_check_profile_message.clas.xml b/src/checks/y_check_profile_message.clas.xml index cd776883..84e2a986 100644 --- a/src/checks/y_check_profile_message.clas.xml +++ b/src/checks/y_check_profile_message.clas.xml @@ -5,7 +5,7 @@ Y_CHECK_PROFILE_MESSAGE E - code pal for ABAP Profile Message + Profile Feature Notification (code pal for ABAP) 1 X X