From 6955082a2d573cbd34a57b8a3cef1a344c0749ef Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 16:24:00 +0000 Subject: [PATCH 01/23] changing default severity --- src/checks/y_check_branch_coverage.clas.abap | 3 +-- src/checks/y_check_chain_decl_usage.clas.abap | 1 - src/checks/y_check_comment_usage.clas.abap | 1 - src/checks/y_check_empty_catches.clas.abap | 1 - src/checks/y_check_empty_procedures.clas.abap | 1 - src/checks/y_check_is_interface_in_class.clas.abap | 1 - src/checks/y_check_method_return_bool.clas.abap | 1 - src/checks/y_check_prefer_line_exists.clas.abap | 1 - src/checks/y_check_prefer_new_to_crt_obj.clas.abap | 1 - src/checks/y_check_procedure_coverage.clas.abap | 3 +-- src/checks/y_check_profile_message.clas.abap | 1 - src/checks/y_check_pseudo_comment_usage.clas.abap | 1 - src/checks/y_check_returning_name.clas.abap | 3 +-- src/checks/y_check_scope_of_variable.clas.abap | 1 - src/checks/y_check_statement_coverage.clas.abap | 5 ++--- src/foundation/y_check_base.clas.abap | 4 ++-- 16 files changed, 7 insertions(+), 22 deletions(-) diff --git a/src/checks/y_check_branch_coverage.clas.abap b/src/checks/y_check_branch_coverage.clas.abap index fd4148c8..9660841c 100644 --- a/src/checks/y_check_branch_coverage.clas.abap +++ b/src/checks/y_check_branch_coverage.clas.abap @@ -16,9 +16,8 @@ CLASS y_check_branch_coverage IMPLEMENTATION. METHOD constructor. super->constructor( ). - version = '0001'. + version = '0002'. - settings-prio = c_note. settings-threshold = 70. settings-is_threshold_reversed = abap_true. settings-disable_on_prodcode_selection = abap_true. diff --git a/src/checks/y_check_chain_decl_usage.clas.abap b/src/checks/y_check_chain_decl_usage.clas.abap index 62da2178..3dccb262 100644 --- a/src/checks/y_check_chain_decl_usage.clas.abap +++ b/src/checks/y_check_chain_decl_usage.clas.abap @@ -23,7 +23,6 @@ CLASS Y_CHECK_CHAIN_DECL_USAGE IMPLEMENTATION. settings-pseudo_comment = '"#EC CHAIN_DECL_USAG' ##NO_TEXT. settings-disable_threshold_selection = abap_true. settings-threshold = 0. - settings-prio = c_warning. settings-documentation = |{ c_docs_path-checks }chain-declaration-usage.md|. set_check_message( 'Do not chain up-front declarations!' ). diff --git a/src/checks/y_check_comment_usage.clas.abap b/src/checks/y_check_comment_usage.clas.abap index 4cbbfbef..89ebe3a4 100644 --- a/src/checks/y_check_comment_usage.clas.abap +++ b/src/checks/y_check_comment_usage.clas.abap @@ -29,7 +29,6 @@ CLASS y_check_comment_usage IMPLEMENTATION. METHOD constructor. super->constructor( ). - settings-prio = c_note. settings-threshold = 10. settings-documentation = |{ c_docs_path-checks }comment-usage.md|. diff --git a/src/checks/y_check_empty_catches.clas.abap b/src/checks/y_check_empty_catches.clas.abap index 6d42844b..a64f5507 100644 --- a/src/checks/y_check_empty_catches.clas.abap +++ b/src/checks/y_check_empty_catches.clas.abap @@ -22,7 +22,6 @@ CLASS Y_CHECK_EMPTY_CATCHES IMPLEMENTATION. settings-pseudo_comment = '"#EC EMPTY_CATCH' ##NO_TEXT. settings-disable_threshold_selection = abap_true. settings-threshold = 0. - settings-prio = c_warning. settings-documentation = |{ c_docs_path-checks }empty-catch.md|. set_check_message( 'Empty catch should be removed!' ). diff --git a/src/checks/y_check_empty_procedures.clas.abap b/src/checks/y_check_empty_procedures.clas.abap index 7d617a64..ad422602 100644 --- a/src/checks/y_check_empty_procedures.clas.abap +++ b/src/checks/y_check_empty_procedures.clas.abap @@ -28,7 +28,6 @@ CLASS y_check_empty_procedures IMPLEMENTATION. settings-pseudo_comment = '"#EC EMPTY_PROCEDURE' ##NO_TEXT. settings-disable_threshold_selection = abap_true. settings-threshold = 0. - settings-prio = c_warning. settings-documentation = |{ c_docs_path-checks }empty-procedure.md|. set_check_message( 'Empty Procedure should be removed!' ). diff --git a/src/checks/y_check_is_interface_in_class.clas.abap b/src/checks/y_check_is_interface_in_class.clas.abap index 8a165633..4d871f3f 100644 --- a/src/checks/y_check_is_interface_in_class.clas.abap +++ b/src/checks/y_check_is_interface_in_class.clas.abap @@ -36,7 +36,6 @@ CLASS Y_CHECK_IS_INTERFACE_IN_CLASS IMPLEMENTATION. settings-pseudo_comment = '"#EC INTF_IN_CLASS' ##NO_TEXT. settings-disable_threshold_selection = abap_true. settings-threshold = 1. - settings-prio = c_warning. settings-apply_on_test_code = abap_false. settings-documentation = |{ c_docs_path-checks }interface-in-class.md|. diff --git a/src/checks/y_check_method_return_bool.clas.abap b/src/checks/y_check_method_return_bool.clas.abap index 18fe583a..17b38224 100644 --- a/src/checks/y_check_method_return_bool.clas.abap +++ b/src/checks/y_check_method_return_bool.clas.abap @@ -26,7 +26,6 @@ CLASS Y_CHECK_METHOD_RETURN_BOOL IMPLEMENTATION. settings-pseudo_comment = '"#EC METH_RET_BOOL' ##NO_TEXT. settings-disable_threshold_selection = abap_true. settings-threshold = 0. - settings-prio = c_warning. settings-documentation = |{ c_docs_path-checks }method-return-bool.md|. relevant_statement_types = VALUE #( ( scan_struc_stmnt_type-class_definition ) diff --git a/src/checks/y_check_prefer_line_exists.clas.abap b/src/checks/y_check_prefer_line_exists.clas.abap index ccdaf278..f26c6310 100644 --- a/src/checks/y_check_prefer_line_exists.clas.abap +++ b/src/checks/y_check_prefer_line_exists.clas.abap @@ -21,7 +21,6 @@ CLASS y_check_prefer_line_exists IMPLEMENTATION. settings-pseudo_comment = '"#EC PREF_LINE_EX' ##NO_TEXT. settings-disable_threshold_selection = abap_true. settings-threshold = 0. - settings-prio = c_warning. settings-documentation = |{ c_docs_path-checks }prefer-line-exists.md|. set_check_message( 'Prefer LINE_EXISTS or LINE_INDEX to READ TABLE or LOOP AT!' ). diff --git a/src/checks/y_check_prefer_new_to_crt_obj.clas.abap b/src/checks/y_check_prefer_new_to_crt_obj.clas.abap index e30d43b2..f84f7ed4 100644 --- a/src/checks/y_check_prefer_new_to_crt_obj.clas.abap +++ b/src/checks/y_check_prefer_new_to_crt_obj.clas.abap @@ -18,7 +18,6 @@ CLASS y_check_prefer_new_to_crt_obj IMPLEMENTATION. settings-pseudo_comment = '"#EC PREF_NEW' ##NO_TEXT. settings-disable_threshold_selection = abap_true. settings-threshold = 0. - settings-prio = c_warning. settings-documentation = |{ c_docs_path-checks }prefer-new-to-create-object.md|. set_check_message( 'Prefer NEW to CREATE OBJECT!' ). diff --git a/src/checks/y_check_procedure_coverage.clas.abap b/src/checks/y_check_procedure_coverage.clas.abap index 60ed2e4a..92fc878d 100644 --- a/src/checks/y_check_procedure_coverage.clas.abap +++ b/src/checks/y_check_procedure_coverage.clas.abap @@ -16,9 +16,8 @@ CLASS y_check_procedure_coverage IMPLEMENTATION. METHOD constructor. super->constructor( ). - version = '0001'. + version = '0002'. - settings-prio = c_note. settings-threshold = 30. settings-is_threshold_reversed = abap_true. settings-disable_on_prodcode_selection = abap_true. diff --git a/src/checks/y_check_profile_message.clas.abap b/src/checks/y_check_profile_message.clas.abap index 313ac194..9f1cc8d0 100644 --- a/src/checks/y_check_profile_message.clas.abap +++ b/src/checks/y_check_profile_message.clas.abap @@ -28,7 +28,6 @@ CLASS y_check_profile_message IMPLEMENTATION. settings-threshold = 0. settings-apply_on_test_code = abap_true. settings-apply_on_productive_code = abap_true. - settings-prio = c_note. set_check_message( '&1 Profile(s) in use: &2.' ). ENDMETHOD. diff --git a/src/checks/y_check_pseudo_comment_usage.clas.abap b/src/checks/y_check_pseudo_comment_usage.clas.abap index 54b9aa82..36c2332c 100644 --- a/src/checks/y_check_pseudo_comment_usage.clas.abap +++ b/src/checks/y_check_pseudo_comment_usage.clas.abap @@ -52,7 +52,6 @@ CLASS y_check_pseudo_comment_usage IMPLEMENTATION. settings-threshold = 0. settings-apply_on_test_code = abap_true. settings-apply_on_productive_code = abap_true. - settings-prio = c_note. relevant_statement_types = VALUE #( BASE relevant_statement_types ( scan_struc_stmnt_type-class_definition ) diff --git a/src/checks/y_check_returning_name.clas.abap b/src/checks/y_check_returning_name.clas.abap index ed9089aa..1b99092c 100644 --- a/src/checks/y_check_returning_name.clas.abap +++ b/src/checks/y_check_returning_name.clas.abap @@ -20,10 +20,9 @@ CLASS y_check_returning_name IMPLEMENTATION. settings-pseudo_comment = '"#EC RET_NAME' ##NO_TEXT. settings-disable_threshold_selection = abap_true. settings-threshold = 0. - settings-prio = c_warning. settings-documentation = |{ c_docs_path-checks }returning-name.md|. - version = '001'. + version = version + 1. relevant_statement_types = VALUE #( ( scan_struc_stmnt_type-class_definition ) ). relevant_structure_types = VALUE #( ). diff --git a/src/checks/y_check_scope_of_variable.clas.abap b/src/checks/y_check_scope_of_variable.clas.abap index 2b509635..ae0bef25 100644 --- a/src/checks/y_check_scope_of_variable.clas.abap +++ b/src/checks/y_check_scope_of_variable.clas.abap @@ -28,7 +28,6 @@ CLASS y_check_scope_of_variable IMPLEMENTATION. settings-pseudo_comment = '"#EC SCOPE_OF_VAR' ##NO_TEXT. settings-disable_threshold_selection = abap_true. settings-threshold = 0. - settings-prio = c_warning. settings-documentation = |{ c_docs_path-checks }scope-of-variable.md|. set_check_message( 'Variable in use out of its scope!' ). diff --git a/src/checks/y_check_statement_coverage.clas.abap b/src/checks/y_check_statement_coverage.clas.abap index 120e061e..86fec6d0 100644 --- a/src/checks/y_check_statement_coverage.clas.abap +++ b/src/checks/y_check_statement_coverage.clas.abap @@ -16,9 +16,6 @@ CLASS y_check_statement_coverage IMPLEMENTATION. METHOD constructor. super->constructor( ). - version = '0001'. - - settings-prio = c_note. settings-threshold = 60. settings-is_threshold_reversed = abap_true. settings-disable_on_prodcode_selection = abap_true. @@ -26,6 +23,8 @@ CLASS y_check_statement_coverage IMPLEMENTATION. settings-apply_on_test_code = abap_false. settings-documentation = |{ c_docs_path-checks }unit-test-coverages.md|. + version = version + 1. + set_check_message( 'Statement Coverage must be higher than &2%! (&1%<=&2%)' ). ENDMETHOD. diff --git a/src/foundation/y_check_base.clas.abap b/src/foundation/y_check_base.clas.abap index 08c29768..c67019e8 100644 --- a/src/foundation/y_check_base.clas.abap +++ b/src/foundation/y_check_base.clas.abap @@ -174,11 +174,11 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. description = get_class_description( ). category = 'Y_CATEGORY_CODE_PAL'. position = y_code_pal_sorter=>get_position( myname ). - version = '0000'. + version = '0001'. has_documentation = abap_true. settings-object_created_on = '20190101'. - settings-prio = c_error. + settings-prio = c_note. settings-threshold = 5. settings-apply_on_productive_code = abap_true. settings-apply_on_test_code = abap_true. From edc9938ccf1af31a5f02ea82e70c1b1fafdf8180 Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 16:59:14 +0000 Subject: [PATCH 02/23] fixing version --- src/checks/y_check_branch_coverage.clas.abap | 2 +- src/checks/y_check_procedure_coverage.clas.abap | 2 +- src/checks/y_check_statement_coverage.clas.abap | 4 ++-- src/foundation/y_check_base.clas.abap | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/checks/y_check_branch_coverage.clas.abap b/src/checks/y_check_branch_coverage.clas.abap index 9660841c..db99e9b9 100644 --- a/src/checks/y_check_branch_coverage.clas.abap +++ b/src/checks/y_check_branch_coverage.clas.abap @@ -16,7 +16,7 @@ CLASS y_check_branch_coverage IMPLEMENTATION. METHOD constructor. super->constructor( ). - version = '0002'. + version = version + 1. settings-threshold = 70. settings-is_threshold_reversed = abap_true. diff --git a/src/checks/y_check_procedure_coverage.clas.abap b/src/checks/y_check_procedure_coverage.clas.abap index 92fc878d..47c76bd6 100644 --- a/src/checks/y_check_procedure_coverage.clas.abap +++ b/src/checks/y_check_procedure_coverage.clas.abap @@ -16,7 +16,7 @@ CLASS y_check_procedure_coverage IMPLEMENTATION. METHOD constructor. super->constructor( ). - version = '0002'. + version = version + 1. settings-threshold = 30. settings-is_threshold_reversed = abap_true. diff --git a/src/checks/y_check_statement_coverage.clas.abap b/src/checks/y_check_statement_coverage.clas.abap index 86fec6d0..a9ef1c89 100644 --- a/src/checks/y_check_statement_coverage.clas.abap +++ b/src/checks/y_check_statement_coverage.clas.abap @@ -16,6 +16,8 @@ CLASS y_check_statement_coverage IMPLEMENTATION. METHOD constructor. super->constructor( ). + version = version + 1. + settings-threshold = 60. settings-is_threshold_reversed = abap_true. settings-disable_on_prodcode_selection = abap_true. @@ -23,8 +25,6 @@ CLASS y_check_statement_coverage IMPLEMENTATION. settings-apply_on_test_code = abap_false. settings-documentation = |{ c_docs_path-checks }unit-test-coverages.md|. - version = version + 1. - set_check_message( 'Statement Coverage must be higher than &2%! (&1%<=&2%)' ). ENDMETHOD. diff --git a/src/foundation/y_check_base.clas.abap b/src/foundation/y_check_base.clas.abap index c67019e8..8203799c 100644 --- a/src/foundation/y_check_base.clas.abap +++ b/src/foundation/y_check_base.clas.abap @@ -174,11 +174,11 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. description = get_class_description( ). category = 'Y_CATEGORY_CODE_PAL'. position = y_code_pal_sorter=>get_position( myname ). - version = '0001'. + version = '0000'. has_documentation = abap_true. settings-object_created_on = '20190101'. - settings-prio = c_note. + settings-prio = c_info. settings-threshold = 5. settings-apply_on_productive_code = abap_true. settings-apply_on_test_code = abap_true. From b6dbca99c0511adf00961dbd8ad25edb210da131 Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 17:07:33 +0000 Subject: [PATCH 03/23] c_note --- src/foundation/y_check_base.clas.abap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/foundation/y_check_base.clas.abap b/src/foundation/y_check_base.clas.abap index 8203799c..3307562f 100644 --- a/src/foundation/y_check_base.clas.abap +++ b/src/foundation/y_check_base.clas.abap @@ -178,7 +178,7 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. has_documentation = abap_true. settings-object_created_on = '20190101'. - settings-prio = c_info. + settings-prio = c_note. settings-threshold = 5. settings-apply_on_productive_code = abap_true. settings-apply_on_test_code = abap_true. From 36b50b452445a6c63640129ecf35505ba7ccdc5d Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 14:37:40 -0300 Subject: [PATCH 04/23] Update README.md --- README.md | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index ba6c1986..dcd9b95f 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,11 @@ # code pal for ABAP -[![abap package version](https://img.shields.io/endpoint?url=https://shield.abap.space/version-shield-json/github/SAP/code-pal-for-abap/src/y_code_pal_version.intf.abap/abap&label=version)](https://github.com/SAP/code-pal-for-abap/blob/master/changelog.txt) +[![abap package version](https://img.shields.io/endpoint?url=https://shield.abap.space/version-shield-json/github/SAP/code-pal-for-abap/src/y_code_pal_version.intf.abap/abap&label=version)](changelog.txt) [![license](https://img.shields.io/github/license/SAP/code-pal-for-abap)](LICENSE) -This tool supports you in writing a clean ABAP code. Clean Code allows you to read your code like well-written prose, it is easily understandable, maintainable, and extensible. In addition, you can write high quality and reliable Unit Tests without hurdles and thereby reduce the total cost of ownership of the software. +Based on the [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md) style guide, this tool contains a set of checks to guarantee the Clean ABAP adherence. Together, both support you in writing a clean ABAP code. -Furthermore... It's **free** and **open-source**! - -It is licensed under the Apache License, Version 2.0 - see [LICENSE](LICENSE). - -## News - -**:warning: Migration Required :warning:** - -From version `v1.01.0` to `v1.02.0` the folder logic was changed, and the abapGit is not able to perform this migration automatically. Therefore, please, follow the step-by-step described in [How To Migrate](pages/how-to-migrate.md)! - -Check the [change log](changelog.txt) for further information. +❣️ It's **free** and **open-source**. ## Features @@ -38,9 +28,9 @@ The Profile Management Tool, which is an alternative of working with SCI based v - Multiple execution of several profiles at the same time (the sharpest/strongest and time valid configuration/threshold will be taken); - Delegation principle to facilitate team work (all delegates, for instance: team members, can work with the same profile); -:warning: The checks are not RFC-Enabled due to local dependencies. +⚠️ The checks are not RFC-Enabled due to local dependencies. -## List of Checks +## Set of Checks - [Check Documentation](docs/check_documentation.md) From 0bdc8a5511fb31bcc615ace7239f36fe2db55ff8 Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 14:38:05 -0300 Subject: [PATCH 05/23] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index dcd9b95f..1bc41153 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,8 @@ [![abap package version](https://img.shields.io/endpoint?url=https://shield.abap.space/version-shield-json/github/SAP/code-pal-for-abap/src/y_code_pal_version.intf.abap/abap&label=version)](changelog.txt) [![license](https://img.shields.io/github/license/SAP/code-pal-for-abap)](LICENSE) -Based on the [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md) style guide, this tool contains a set of checks to guarantee the Clean ABAP adherence. Together, both support you in writing a clean ABAP code. +Based on the [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md) style guide, this tool contains a set of checks to guarantee the Clean ABAP adherence. +Together, both support you in writing a clean ABAP code. ❣️ It's **free** and **open-source**. From dd1f41ebd43af34263c674bbb4b0f2d0b4c83ae2 Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 14:41:38 -0300 Subject: [PATCH 06/23] Update how-to-configure.md --- pages/how-to-configure.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/pages/how-to-configure.md b/pages/how-to-configure.md index 9b186db7..81aee59b 100644 --- a/pages/how-to-configure.md +++ b/pages/how-to-configure.md @@ -4,8 +4,6 @@ ## How to Configure -**The default customizing (initial values) is not an SAP delivered standard value.** - The tool is 100% compatible with the SAP CI Framework (Code Inspector). That is, SAP Transactions: SCI and SCII. By means of these transactions, it is possible to create/run/save an inspection using our delivered CHECKS (the checks can be found under the "CODE PAL FOR ABAP" category). It is also possible to create a CI-Variant and run the selected CHECKS using this variant at any time. This CI-Variant can be also used in SUT (ABAP CHECK REPORT), ATC or even using SAP-Workbench ABAP Editors (e.g.: SE80) or ADT (e.g.: Eclipse) with ATC/CI Integration directly (the CI-Variant will be asked). From cedf2dbfb055df9111040e8fd259eb82305a0e41 Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 15:17:21 -0300 Subject: [PATCH 07/23] Update README.md --- README.md | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 1bc41153..d22f80c8 100644 --- a/README.md +++ b/README.md @@ -10,26 +10,21 @@ Together, both support you in writing a clean ABAP code. ## Features -- Checks are ready-to-use; -- Checks can be executed via SUT, SCI, SCII (Code-Inspector) and via ATC (e.g. directly in SE80, Eclipse...); -- Automatic exclusion of code which shall not be checked (e.g. generated code); -- The scope is customizable (filter option on object creation date); -- Thresholds are customizable; -- Message severity is customizable (error, warning, or notification); -- Checking may be activated in productive-code and/or test-code (customizable); -- Findings can be suppressed via Code-Inspector Pragmas; -- Usage of a "Profile Management Tool" (Optional). - -The Profile Management Tool, which is an alternative of working with SCI based variant(s), offers among others: -- An user friendly UI; -- A user-based or group-based execution of Checks; -- Creation, assignment and unassignment of Profiles (unassigning a profile will only delete it if no checks are registered to this profile); -- Import/Export a profile among systems (download/upload function – UI button or API Post Service); -- Single-Click registration of all code pal checks at once to a profile (UI button); -- Multiple execution of several profiles at the same time (the sharpest/strongest and time valid configuration/threshold will be taken); -- Delegation principle to facilitate team work (all delegates, for instance: team members, can work with the same profile); - -⚠️ The checks are not RFC-Enabled due to local dependencies. +- Supported by Code Inspector (SCI / SCII) and ABAP Test Cockpit (ATC) (SE80 / Eclipse); +- Ignores automatically generated code; +- Supports exemptions; +- Provides a new user-friendly way to create variants ([Profile Management](pages/how-to-configure.md)); +- Configurable rules: + - Threshold; + - Severity / Priority; + - Valid for productive, test, or both codes; + - Valid for objects created since a specific date; + - Validity period; + - Allow / Deny exemption. + +⚠️ Tool is not RFC-Enabled due to local dependencies ([#268](https://github.com/SAP/code-pal-for-abap/issues/268)). + +⚠️ Severities pre-defined as `Notification` by default so you can decide with your team what is an `Error` / `Warning` based on your needs. ## Set of Checks @@ -47,11 +42,14 @@ The Profile Management Tool, which is an alternative of working with SCI based v - **[Execute](pages/how-to-execute.md)** - **[Contribute](pages/how-to-contribute.md)** -## Further Reading +## Recommended Readings -- [ABAP Styleguides on Clean Code](https://github.com/SAP/styleguides/blob/master/clean-abap/CleanABAP.md) -- [Writing Testable Code for ABAP](https://open.sap.com/courses/wtc1/items/2gzG0sRlN1yjkTUREB02L9) -- [ABAP Development for S/4HANA](https://open.sap.com/courses/a4h1) +- [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md) - [ABAP 7.40 Quick Reference](https://blogs.sap.com/2015/10/25/abap-740-quick-reference/) - [ABAP Built-in Functions](https://blogs.sap.com/2015/11/30/reminder-abap-built-in-functions/) - [ABAP - Release-Specific Changes](https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/abennews.htm) + +## Recommended Courses + +- [Writing Testable Code for ABAP](https://open.sap.com/courses/wtc1/items/2gzG0sRlN1yjkTUREB02L9) +- [ABAP Development for S/4HANA](https://open.sap.com/courses/a4h1) From 8c21f37411fc0893f58323be767cb186b9e8b0f4 Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 15:21:36 -0300 Subject: [PATCH 08/23] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d22f80c8..41701b81 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,11 @@ Together, both support you in writing a clean ABAP code. - Ignores automatically generated code; - Supports exemptions; - Provides a new user-friendly way to create variants ([Profile Management](pages/how-to-configure.md)); -- Configurable rules: +- Allows configuration based on: - Threshold; - Severity / Priority; - - Valid for productive, test, or both codes; - - Valid for objects created since a specific date; + - Validity for productive code, test code, or both; + - Validity for objects created since a specific date; - Validity period; - Allow / Deny exemption. From c54b05b7ae85fc9888ab45b7b8f47317773e57a0 Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 15:23:32 -0300 Subject: [PATCH 09/23] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 41701b81..fd277e27 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,9 @@ Together, both support you in writing a clean ABAP code. - Validity period; - Allow / Deny exemption. -⚠️ Tool is not RFC-Enabled due to local dependencies ([#268](https://github.com/SAP/code-pal-for-abap/issues/268)). +⚠️ Tool is not RFC-Enabled ([#268](https://github.com/SAP/code-pal-for-abap/issues/268)). -⚠️ Severities pre-defined as `Notification` by default so you can decide with your team what is an `Error` / `Warning` based on your needs. +⚠️ Severities pre-defined as `Notification` by default ([#368](https://github.com/SAP/code-pal-for-abap/issues/368)). ## Set of Checks From d239d4d0ff1bb7911e2d2b80577515a74d423dba Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 15:28:15 -0300 Subject: [PATCH 10/23] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fd277e27..d80849d3 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![abap package version](https://img.shields.io/endpoint?url=https://shield.abap.space/version-shield-json/github/SAP/code-pal-for-abap/src/y_code_pal_version.intf.abap/abap&label=version)](changelog.txt) [![license](https://img.shields.io/github/license/SAP/code-pal-for-abap)](LICENSE) -Based on the [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md) style guide, this tool contains a set of checks to guarantee the Clean ABAP adherence. +Based on the [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md) style guide, this tool contains a set of checks to guarantee the [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md) adherence. Together, both support you in writing a clean ABAP code. ❣️ It's **free** and **open-source**. @@ -24,7 +24,7 @@ Together, both support you in writing a clean ABAP code. ⚠️ Tool is not RFC-Enabled ([#268](https://github.com/SAP/code-pal-for-abap/issues/268)). -⚠️ Severities pre-defined as `Notification` by default ([#368](https://github.com/SAP/code-pal-for-abap/issues/368)). +⚠️ Severities set to `Notification` / `Priority 3` by default ([#368](https://github.com/SAP/code-pal-for-abap/issues/368)). ## Set of Checks From e8ccf68f33df99143f455f7014f5cf29c382a2c1 Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 15:28:47 -0300 Subject: [PATCH 11/23] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d80849d3..6293ebd0 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Together, both support you in writing a clean ABAP code. ## Features -- Supported by Code Inspector (SCI / SCII) and ABAP Test Cockpit (ATC) (SE80 / Eclipse); +- Supported by Code Inspector (`SCI` / `SCII`) and ABAP Test Cockpit (ATC) (`SE80` / Eclipse); - Ignores automatically generated code; - Supports exemptions; - Provides a new user-friendly way to create variants ([Profile Management](pages/how-to-configure.md)); From c943369084324dd32d5b9734c3bb1504f0529f1b Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 16:02:44 -0300 Subject: [PATCH 12/23] Update how-to-configure.md --- pages/how-to-configure.md | 50 +++++++++++---------------------------- 1 file changed, 14 insertions(+), 36 deletions(-) diff --git a/pages/how-to-configure.md b/pages/how-to-configure.md index 81aee59b..007f5f20 100644 --- a/pages/how-to-configure.md +++ b/pages/how-to-configure.md @@ -4,55 +4,33 @@ ## How to Configure -The tool is 100% compatible with the SAP CI Framework (Code Inspector). That is, SAP Transactions: SCI and SCII. By means of these transactions, it is possible to create/run/save an inspection using our delivered CHECKS (the checks can be found under the "CODE PAL FOR ABAP" category). -It is also possible to create a CI-Variant and run the selected CHECKS using this variant at any time. This CI-Variant can be also used in SUT (ABAP CHECK REPORT), ATC or even using SAP-Workbench ABAP Editors (e.g.: SE80) or ADT (e.g.: Eclipse) with ATC/CI Integration directly (the CI-Variant will be asked). +💡 The tool is compatible with the SAP Code Inspector framework (`SCI` / `SCII`), and you can find the respective checks under the `code pal for ABAP (open source plugin)` category once you have it installed. -In summary, it is possible to use our tool directly in SCI/SCII, via ATC Integration, via API Call, via SUT, via CI-Variant or via Profile(s). -But keep in mind, one has to choose betweeen using CI-Variants (Code Inspector Variants) or Using Profile/s (via Transaction: Y_CODE_PAL_PROFILE, delivered along with the toolkit). Both features cannot be used in paralell in the same system for the same user. For more details on using CI-Variant/s and Profile/s, please check the section: [How to Execute](https://github.com/SAP/code-pal-for-abap/blob/master/pages/how-to-execute.md). +⚠️The below documentation is valid for our own `Profile Management Tool` feature only. -Furtheremore, every single CHECK can be configurable independenlty. - -By the Check configuration: You can, - -* Define check's validity period; -* Restrict to objects created since a specific date; -* Define check's severity; -* Define check's threshold (if applicable); -* Define if it is applicable in productive code (if applicable); -* Define if it is applicable in test code (if applicable); -* Define if it allows exemption via pseudo comments (if applicable). - -Check behavior: - -* If using a CI-Variant, just one variant can be executed per time. -* If using a profile, first, at least one profile should be assigned to your user. Then, all checks assigned to this profle will be executed. But if so, the usage of a CI-variant is no longer possible. The profile overrules a CI-variant! In order to use again a CI-variant, one has to unassign the profile(s) of his/her user; -* If multiple profiles are assigned to your user, all checks assigned to all profiles will be executed and the "strongest" or "sharpest" thresholds will be taken; -* If have no profile assigned to your user, the execution of the checks have to be made live in SCI/SCII or by means of a CI-Variant. - -Profile behavior: - -* If you unassign a profile from your user, it will not delete it from the database. It means, you can reassign it to your user, and all the checks with respective customization will return; -* If you assign the `Y_CHECK_PROFILE_MESSAGE` check to the profile, you will receive an info message every time you execute the global check variant. It means, not all the checks from the variant were executed, but so the ones related to the active profile. +The transaction `Y_CODE_PAL_PROFILE` provides access to the `Profile Management Tool`. + +### 1. Profile -Threshold behavior: +> You can see a Profile as a Code Inspector Variant. -* If you have multiple profiles, and the same check assigned to two or more profiles, it will use the check with the strongest threshold. - -### 1. Create or Assign a Profile +Behavior: +- If you assign a Profile to your user, it overwrites the Code Inspector Variant; +- If you assign multiple Profiles to your user, the tool will combine them in runtime; +- You can assign someone else Profile to your user; +- The Profile is deleted once it has no check and assigned to nobody. -Start transaction `Y_CODE_PAL_PROFILE`, click on the `+` button, and inform the profile name. +To create or assign it, click on the `+` button, and inform the Profile name: ![create a profile](imgs/create-profile.png) -You can assign an already existing profile to your user. It is useful for working on a team based on the same checks. - -### 2. Assign Delegates +### 2. Delegates Delegates are users which can maintain the checks. As you are creating a new check, you will be added automatically. In case you want to add someone else as an owner, click on the `+` button and inform his/her user name. ![assign delegate](imgs/assign-delegate.png) -### 3. Assign Checks +### 3. Checks Click on the `+` button and assign the checks. From ab1e1eb8d9d0d7662b5833c0806863e809d12810 Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 16:03:15 -0300 Subject: [PATCH 13/23] Update how-to-configure.md --- pages/how-to-configure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/how-to-configure.md b/pages/how-to-configure.md index 007f5f20..23cba27e 100644 --- a/pages/how-to-configure.md +++ b/pages/how-to-configure.md @@ -4,7 +4,7 @@ ## How to Configure -💡 The tool is compatible with the SAP Code Inspector framework (`SCI` / `SCII`), and you can find the respective checks under the `code pal for ABAP (open source plugin)` category once you have it installed. +💡 The tool is compatible with the SAP Code Inspector framework (`SCI` / `SCII`). ⚠️The below documentation is valid for our own `Profile Management Tool` feature only. From 99d92425e1998bb287806a24a37a7846187fb74a Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 16:07:22 -0300 Subject: [PATCH 14/23] Update how-to-configure.md --- pages/how-to-configure.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pages/how-to-configure.md b/pages/how-to-configure.md index 23cba27e..4206e78b 100644 --- a/pages/how-to-configure.md +++ b/pages/how-to-configure.md @@ -12,7 +12,7 @@ The transaction `Y_CODE_PAL_PROFILE` provides access to the `Profile Management ### 1. Profile -> You can see a Profile as a Code Inspector Variant. +> Profile is similar to a Code Inspector Variant. Behavior: - If you assign a Profile to your user, it overwrites the Code Inspector Variant; @@ -26,7 +26,9 @@ To create or assign it, click on the `+` button, and inform the Profile name: ### 2. Delegates -Delegates are users which can maintain the checks. As you are creating a new check, you will be added automatically. In case you want to add someone else as an owner, click on the `+` button and inform his/her user name. +> Delegates are the Profile owners who are allowed to configure it. + +To add someone else, click on the `+` button and inform his / her user name. ![assign delegate](imgs/assign-delegate.png) From 4f47f476fd1ae33026388a89380101e1628eefd4 Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 16:35:11 -0300 Subject: [PATCH 15/23] Update how-to-configure.md --- pages/how-to-configure.md | 71 ++++++++++++++++++++++++++++++--------- 1 file changed, 55 insertions(+), 16 deletions(-) diff --git a/pages/how-to-configure.md b/pages/how-to-configure.md index 4206e78b..08963f45 100644 --- a/pages/how-to-configure.md +++ b/pages/how-to-configure.md @@ -9,13 +9,25 @@ ⚠️The below documentation is valid for our own `Profile Management Tool` feature only. The transaction `Y_CODE_PAL_PROFILE` provides access to the `Profile Management Tool`. + +- [Code Pal for ABAP](#code-pal-for-abap) + - [How to Configure](#how-to-configure) + - [1. Profiles](#1-profiles) + - [2. Delegates](#2-delegates) + - [3. Checks](#3-checks) + - [Further Features](#further-features) + - [Import / Export Profile](#import--export-profile) + - [Import via API](#import-via-api) + - [Add / Remove All Checks](#add--remove-all-checks) + - [Add Missing Checks](#add-missing-checks) -### 1. Profile +### 1. Profiles -> Profile is similar to a Code Inspector Variant. +> Profiles are similar to Code Inspector Variants. Behavior: -- If you assign a Profile to your user, it overwrites the Code Inspector Variant; + +- If you assign a Profile to your user, it overwrites the Code Inspector Variant (❗); - If you assign multiple Profiles to your user, the tool will combine them in runtime; - You can assign someone else Profile to your user; - The Profile is deleted once it has no check and assigned to nobody. @@ -26,31 +38,46 @@ To create or assign it, click on the `+` button, and inform the Profile name: ### 2. Delegates -> Delegates are the Profile owners who are allowed to configure it. +> Delegates are the Profile owners who are allowed to configure it; +> Multiple delegates are allowed. + +Behavior: + +- If you aren't a Delegate, you won't be able to add / change / remove a Delegate or Check. -To add someone else, click on the `+` button and inform his / her user name. +To add someone else, click on the `+` button and inform his / her user name: ![assign delegate](imgs/assign-delegate.png) ### 3. Checks -Click on the `+` button and assign the checks. +> Checks are the rules based on the [Clean ABAP](https://github.com/SAP/styleguides/blob/master/clean-abap/CleanABAP.md) style guide. -![assign check](imgs/assign-check.png) +Behavior: + +- You can define a Check threshold (if applicable); +- You can define a Check severity / priority (error / priority 1, warning / priority 2, or notification / priority 3) +- You can define a Check filter on productive code, test code, or both (if applicable); +- You can define a Check filter on object creation date; +- You can define a Check validity period; +- You can define if a Check can/cannot be exempt via pseudo-comments (if applicable). +- If you have multiple Profiles assigned to your user, the check with the"strongest" or "sharpest" thresholds will be taken; -If you want, you can change the default configuration: +To assign them to your Profile, click on the `+` button: + +![assign check](imgs/assign-check.png) ![customize check](imgs/customize-check.png) -If you do not understand the check meaning, you can check its documentation: +💡 You can use the documentation button to navigate to the Check documentation: ![check documentation](imgs/check-documentation.png) -## How to export and import customization +## Further Features -You can export and import profiles, with respective delegates and checks, using a `JSON` file. +### Import / Export Profile -It is useful when you work with multiple systems, and you want to sync the profiles between them. +You can import and export a Profile with its Delegates and Checks using a `JSON` file, here: ![import and export feature](imgs/import-export-feature.png) @@ -58,10 +85,22 @@ It is useful when you work with multiple systems, and you want to sync the profi Once you export a profile to a `JSON` file, you can import it using the service created in the [How To Install](how-to-install.md) guide. -To consume the API, you have to `POST` the `JSON` file to the service with the respective authentication you configured to the service (usually basic, user/pass) and with the header `Content-Type` as `application/json` and `action` as `import_profile`. +To consume the API, you have to `POST` the `JSON` file to the service with the respective authentication you configured to the service (usually basic, user/pass) and with the headers `Content-Type` as `application/json` and `action` as `import_profile`. + +Possible returns: + +- `HTTP 400 - Bad Request` if the file format is not valid, or if the request has a wrong `Content-Type`; +- `HTTP 403 - Forbidden` if the profile already exists in the system and the authentication user is not listed as a delegate; +- `HTTP 500 - Internal Server Error` if the functionality is not working as expected. + +### Add / Remove All Checks + +You can add all and remove all the Checks from a Profile, here: + +![add all and remove all](imgs/) -The API returns an `HTTP 400 - Bad Request` if the file format is not valid, or if the request has a wrong `Content-Type`. +### Add Missing Checks -The API returns an `HTTP 403 - Forbidden` if the profile already exists in the system and the authentication user is not listed as a delegate. +You can add all the missing checks, comparing your Profile and the available Checks, here: -The API returns an `HTTP 500 - Internal Server Error` if the functionality is not working as expected. +![missing checks](imgs/) From 512b047fb2619127f151ae29ab04827b1d623012 Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 16:36:15 -0300 Subject: [PATCH 16/23] Update how-to-configure.md --- pages/how-to-configure.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pages/how-to-configure.md b/pages/how-to-configure.md index 08963f45..33100467 100644 --- a/pages/how-to-configure.md +++ b/pages/how-to-configure.md @@ -8,8 +8,6 @@ ⚠️The below documentation is valid for our own `Profile Management Tool` feature only. -The transaction `Y_CODE_PAL_PROFILE` provides access to the `Profile Management Tool`. - - [Code Pal for ABAP](#code-pal-for-abap) - [How to Configure](#how-to-configure) - [1. Profiles](#1-profiles) @@ -21,7 +19,9 @@ The transaction `Y_CODE_PAL_PROFILE` provides access to the `Profile Management - [Add / Remove All Checks](#add--remove-all-checks) - [Add Missing Checks](#add-missing-checks) -### 1. Profiles +The transaction `Y_CODE_PAL_PROFILE` provides access to the `Profile Management Tool`. + +### Profiles > Profiles are similar to Code Inspector Variants. @@ -36,7 +36,7 @@ To create or assign it, click on the `+` button, and inform the Profile name: ![create a profile](imgs/create-profile.png) -### 2. Delegates +### Delegates > Delegates are the Profile owners who are allowed to configure it; > Multiple delegates are allowed. @@ -49,7 +49,7 @@ To add someone else, click on the `+` button and inform his / her user name: ![assign delegate](imgs/assign-delegate.png) -### 3. Checks +### Checks > Checks are the rules based on the [Clean ABAP](https://github.com/SAP/styleguides/blob/master/clean-abap/CleanABAP.md) style guide. From 2bb05eb86260b8ec2aff5dbf2b3966a7b9ac4bfb Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 16:37:15 -0300 Subject: [PATCH 17/23] Update changelog.txt --- changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.txt b/changelog.txt index f4f3850f..52dc1087 100644 --- a/changelog.txt +++ b/changelog.txt @@ -14,6 +14,7 @@ Whenever you upgrade code pal for ABAP, it is highly recommended to execute the 2021-04-** v.1.14.0 ------------------ +! Notification as Default Severity (#368) + Prefer LINE_EXISTS or LINE_INDEX to READ TABLE or LOOP AT (#355) + Additional option to disable exceptions/pragmas (#329) * Diffs for TABL (#359) From 541e08c2d22d1aa7439cc2d3c62664705a1dec8e Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 16:41:48 -0300 Subject: [PATCH 18/23] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6293ebd0..c892b80a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![license](https://img.shields.io/github/license/SAP/code-pal-for-abap)](LICENSE) Based on the [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md) style guide, this tool contains a set of checks to guarantee the [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md) adherence. -Together, both support you in writing a clean ABAP code. +Together, we both support you in writing a clean ABAP code. ❣️ It's **free** and **open-source**. From 56c4630922c6ac5ee64647e723bf369cc09731cc Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Wed, 14 Apr 2021 16:42:52 -0300 Subject: [PATCH 19/23] Update how-to-configure.md --- pages/how-to-configure.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/how-to-configure.md b/pages/how-to-configure.md index 33100467..f11f7127 100644 --- a/pages/how-to-configure.md +++ b/pages/how-to-configure.md @@ -10,9 +10,9 @@ - [Code Pal for ABAP](#code-pal-for-abap) - [How to Configure](#how-to-configure) - - [1. Profiles](#1-profiles) - - [2. Delegates](#2-delegates) - - [3. Checks](#3-checks) + - [Profiles](#1-profiles) + - [Delegates](#2-delegates) + - [Checks](#3-checks) - [Further Features](#further-features) - [Import / Export Profile](#import--export-profile) - [Import via API](#import-via-api) From c02a7771af2f139e8fd3340c24b9595a93501dbd Mon Sep 17 00:00:00 2001 From: estevao-schultz-neto-SAP <63100656+estevao-schultz-neto-SAP@users.noreply.github.com> Date: Thu, 15 Apr 2021 10:34:44 +0200 Subject: [PATCH 20/23] Update how-to-configure.md --- pages/how-to-configure.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/how-to-configure.md b/pages/how-to-configure.md index f11f7127..9b7d2761 100644 --- a/pages/how-to-configure.md +++ b/pages/how-to-configure.md @@ -4,9 +4,9 @@ ## How to Configure -💡 The tool is compatible with the SAP Code Inspector framework (`SCI` / `SCII`). +💡 The tool is compatible with the SAP Code Inspector framework (`SCI` / `SCII`) and you can launch it using your own SCI/SCII variant(s). Alternatively, you may also use the tool by means of defining Profiles as described bellow. -⚠️The below documentation is valid for our own `Profile Management Tool` feature only. +⚠️The below documentation is valid for our own `Profile Management Tool` (transaction: `Y_CODE_PAL_PROFILE`) feature only. - [Code Pal for ABAP](#code-pal-for-abap) - [How to Configure](#how-to-configure) @@ -18,7 +18,7 @@ - [Import via API](#import-via-api) - [Add / Remove All Checks](#add--remove-all-checks) - [Add Missing Checks](#add-missing-checks) - + The transaction `Y_CODE_PAL_PROFILE` provides access to the `Profile Management Tool`. ### Profiles From 1407feda098009d8e1954c5cc4babbe4cbf56935 Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Thu, 15 Apr 2021 08:53:37 -0300 Subject: [PATCH 21/23] Update how-to-configure.md --- pages/how-to-configure.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pages/how-to-configure.md b/pages/how-to-configure.md index 9b7d2761..d750b094 100644 --- a/pages/how-to-configure.md +++ b/pages/how-to-configure.md @@ -4,9 +4,11 @@ ## How to Configure -💡 The tool is compatible with the SAP Code Inspector framework (`SCI` / `SCII`) and you can launch it using your own SCI/SCII variant(s). Alternatively, you may also use the tool by means of defining Profiles as described bellow. +⚠️This documentation describes how to configure the code pal for ABAP attributes using the `Profile Management Tool` feature only. -⚠️The below documentation is valid for our own `Profile Management Tool` (transaction: `Y_CODE_PAL_PROFILE`) feature only. +💡Alternatively, you can configure them using the SAP Code Inspector variants using the `SCI` transaction. + +Table of Contents: - [Code Pal for ABAP](#code-pal-for-abap) - [How to Configure](#how-to-configure) @@ -19,7 +21,7 @@ - [Add / Remove All Checks](#add--remove-all-checks) - [Add Missing Checks](#add-missing-checks) -The transaction `Y_CODE_PAL_PROFILE` provides access to the `Profile Management Tool`. +💡 The transaction `Y_CODE_PAL_PROFILE` provides access to the `Profile Management Tool`. ### Profiles @@ -27,7 +29,7 @@ The transaction `Y_CODE_PAL_PROFILE` provides access to the `Profile Management Behavior: -- If you assign a Profile to your user, it overwrites the Code Inspector Variant (❗); +- (❗) If you assign a Profile to your user, **it overwrites the Code Inspector variant** (❗); - If you assign multiple Profiles to your user, the tool will combine them in runtime; - You can assign someone else Profile to your user; - The Profile is deleted once it has no check and assigned to nobody. From f37d910c32af2c96e0a594216ae19ed08169f6bb Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Thu, 15 Apr 2021 08:54:47 -0300 Subject: [PATCH 22/23] Update how-to-configure.md --- pages/how-to-configure.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/how-to-configure.md b/pages/how-to-configure.md index d750b094..02b347ef 100644 --- a/pages/how-to-configure.md +++ b/pages/how-to-configure.md @@ -4,9 +4,9 @@ ## How to Configure -⚠️This documentation describes how to configure the code pal for ABAP attributes using the `Profile Management Tool` feature only. +⚠️This documentation describes how to configure using the `Profile Management Tool` feature only. -💡Alternatively, you can configure them using the SAP Code Inspector variants using the `SCI` transaction. +💡Alternatively, you can use the SAP Code Inspector variants in the `SCI` transaction. Table of Contents: From a5f0dff32a67b1428eaa1c16d0345cd94b200b6c Mon Sep 17 00:00:00 2001 From: Lucas Borin <5233413+lucasborin@users.noreply.github.com> Date: Thu, 15 Apr 2021 08:55:12 -0300 Subject: [PATCH 23/23] Update how-to-configure.md --- pages/how-to-configure.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/pages/how-to-configure.md b/pages/how-to-configure.md index 02b347ef..b13f74f0 100644 --- a/pages/how-to-configure.md +++ b/pages/how-to-configure.md @@ -10,16 +10,15 @@ Table of Contents: -- [Code Pal for ABAP](#code-pal-for-abap) - - [How to Configure](#how-to-configure) - - [Profiles](#1-profiles) - - [Delegates](#2-delegates) - - [Checks](#3-checks) - - [Further Features](#further-features) - - [Import / Export Profile](#import--export-profile) - - [Import via API](#import-via-api) - - [Add / Remove All Checks](#add--remove-all-checks) - - [Add Missing Checks](#add-missing-checks) +- [How to Configure](#how-to-configure) + - [Profiles](#1-profiles) + - [Delegates](#2-delegates) + - [Checks](#3-checks) +- [Further Features](#further-features) + - [Import / Export Profile](#import--export-profile) + - [Import via API](#import-via-api) + - [Add / Remove All Checks](#add--remove-all-checks) + - [Add Missing Checks](#add-missing-checks) 💡 The transaction `Y_CODE_PAL_PROFILE` provides access to the `Profile Management Tool`.