160 Rules
| ID | Name | Severity |
|---|---|---|
| 7050 | Function naming convention |
medium
|
| 7054 | Avoid large Programs - too many Lines of Code (ABAP) |
medium
|
| 7056 | Avoid Programs/Includes including large Includes |
medium
|
| 7058 | Avoid Programs with too many includes |
medium
|
| 7060 | Avoid undocumented Programs (ABAP) |
medium
|
| 7062 | Avoid undocumented Includes |
medium
|
| 7066 | Avoid Programs with low comment/code ratio |
medium
|
| 7068 | Avoid Includes with low comment/code ratio |
medium
|
| 7072 | Program naming convention |
medium
|
| 7074 | Include naming convention |
medium
|
| 7076 | Avoid Programs/Includes with too many Forms |
medium
|
| 7082 | Avoid Function pools with too many functions |
medium
|
| 7088 | Processing Screen Naming Convention |
medium
|
| 7092 | Avoid Include Circular references |
medium
|
| 7094 | Avoid Programs with too many levels of inclusion |
medium
|
| 7420 | Avoid SQL queries with implicit conversions in the WHERE clause |
medium
|
| 7512 | Avoid empty Functions, Forms and Modules |
medium
|
| 7514 | Avoid empty Includes |
medium
|
| 7516 | Avoid empty Programs |
medium
|
| 7518 | Avoid missing WHEN OTHERS in CASE statements |
medium
|
| 7520 | Avoid unchecked return code (SY-SUBRC) after OPEN SQL or READ statement |
high
|
| 7524 | Avoid using BREAK or BREAK-POINT statement |
high
|
| 7526 | Avoid using hard-coded paths |
medium
|
| 7528 | Never use the ON CHANGE OF statement |
medium
|
| 7530 | Avoid "SELECT *" or "SELECT SINGLE *" queries |
medium
|
| 7532 | Avoid nested SELECT ... ENDSELECT statements |
high
|
| 7534 | Avoid READ TABLE without BINARY SEARCH |
high
|
| 7536 | Avoid using AT Events in combination of LOOP AT .... WHERE constructs |
high
|
| 7538 | DEPRECATED: Avoid using SELECT ... INTO CORRESPONDING FIELDS OF |
high
|
| 7540 | Avoid unreferenced Includes |
medium
|
| 7542 | Avoid using FOR ALL ENTRIES IN without emptiness check |
medium
|
| 7544 | Avoid using SELECT ... ENDSELECT statement |
medium
|
| 7568 | Avoid undocumented User-exits |
medium
|
| 7570 | Avoid User-Exits with low comment/code ratio |
medium
|
| 7572 | Avoid accessing multiple times the same SAP Table or View in an SAP include (DELETE) |
medium
|
| 7576 | Avoid accessing multiple times the same SAP Table or View in an SAP include (INSERT) |
medium
|
| 7578 | Avoid accessing multiple times the same SAP Table or View in an SAP include (UPDATE) |
medium
|
| 7580 | Avoid accessing multiple times the same SAP Table or View in an SAP Program (DELETE) |
medium
|
| 7582 | Avoid accessing multiple times the same SAP Table or View in an SAP Program (INSERT) |
medium
|
| 7584 | Avoid accessing multiple times the same SAP Table or View in an SAP Program (UPDATE) |
medium
|
| 7586 | Avoid cyclic calls between Event and its handled Method |
medium
|
| 7592 | Avoid using "ORDER BY" in SELECTS |
medium
|
| 7594 | Avoid using "SELECT DISTINCT", use DELETE-ADJACENT |
medium
|
| 7596 | Avoid Classes implementing too many Interfaces (ABAP) |
medium
|
| 7598 | Class naming convention |
medium
|
| 7602 | Transaction naming convention |
medium
|
| 7612 | Avoid Interfaces with a low comment/code ratio |
medium
|
| 7624 | Class members should be declared as Private |
medium
|
| 7626 | Avoid large Classes - too many Methods (ABAP) |
medium
|
| 7628 | Avoid large Classes - too many Data Members (ABAP) |
medium
|
| 7630 | Avoid large Interfaces - too many Methods (ABAP) |
medium
|
| 7660 | Never use SQL queries with a cartesian product on XXL Tables |
high
|
| 7662 | Avoid SQL queries on XXL Tables with implicit conversions in the WHERE clause |
high
|
| 7664 | Avoid using FOR ALL ENTRIES IN without emptiness check on XXL Tables |
medium
|
| 7666 | Avoid using SELECT ... ENDSELECT statement on XXL Tables |
medium
|
| 7670 | Avoid accessing SAP standard Tables in modification from custom code |
high
|
| 7672 | Avoid using EXIT statement in Include |
medium
|
| 7680 | Declare as Final all classes that will not be sub-classed |
medium
|
| 7766 | Avoid Artifacts with High Cyclomatic Complexity |
medium
|
| 7768 | Avoid Artifacts with High Depth of Code |
medium
|
| 7772 | Avoid Artifacts with High Essential Complexity |
medium
|
| 7774 | Avoid Artifacts with High Integration Complexity |
medium
|
| 7776 | Avoid Artifacts with High Fan-In |
medium
|
| 7778 | Avoid Artifacts with High Fan-Out |
medium
|
| 7780 | Avoid Classes with a very low comment/code ratio |
medium
|
| 7786 | Avoid long Table or View names |
medium
|
| 7788 | Avoid empty catch blocks |
high
|
| 7792 | Avoid Classes with a High Number Of Children |
medium
|
| 7796 | Avoid Classes with a High Lack of Cohesion - variant |
medium
|
| 7798 | Avoid Classes with a High Lack of Cohesion |
medium
|
| 7802 | Avoid Classes with a High Depth of Inheritance Tree |
medium
|
| 7806 | Avoid Artifacts with Group By |
medium
|
| 7808 | Avoid Artifacts with SQL statement including subqueries |
medium
|
| 7810 | Avoid Artifacts with a Complex SELECT Clause |
medium
|
| 7818 | Avoid Functions having a very low Comment/Code ratio |
medium
|
| 7820 | Never use SQL queries with a cartesian product |
medium
|
| 7822 | Avoid Artifacts with queries on more than 4 Tables |
medium
|
| 7828 | Avoid Artifacts with High RAW SQL Complexity |
medium
|
| 7830 | Avoid unreferenced Interfaces |
medium
|
| 7832 | Avoid unreferenced Classes |
medium
|
| 7834 | Avoid undocumented Interfaces |
medium
|
| 7836 | Avoid undocumented Functions |
medium
|
| 7838 | Avoid undocumented Methods |
medium
|
| 7842 | Avoid large Artifacts - too many Lines of Code |
medium
|
| 7844 | Avoid undocumented Classes |
medium
|
| 7846 | Avoid Methods with a very low comment/code ratio |
medium
|
| 7848 | Interface naming convention - prefix |
medium
|
| 7850 | Avoid raising an exception in a Web Dynpro Supply Function or in a Method called by a Supply Function |
medium
|
| 7852 | Database view naming convention - prefix control |
medium
|
| 7854 | Database table naming convention - prefix control |
medium
|
| 7858 | Avoid passing parameter by value |
medium
|
| 7860 | Avoid unreferenced Functions and Procedures |
medium
|
| 7864 | BAPIs must not cause the Program to abort or terminate |
high
|
| 7866 | Avoid SELECT ... BYPASSING BUFFER |
medium
|
| 7868 | Avoid Open SQL queries in loops |
critical
|
| 7870 | Avoid using the NOT LIKE operator in WHERE clauses |
medium
|
| 7872 | Avoid using IS [NOT] NULL in WHERE condition |
medium
|
| 7874 | Avoid using dynamic queries |
critical
|
| 7876 | Avoid using SELECT ... FOR UPDATE |
medium
|
| 7878 | Avoid Open SQL SELECT queries without WHERE condition |
high
|
| 7880 | Avoid nested loops |
medium
|
| 7882 | Avoid using Native SQL |
critical
|
| 7884 | Avoid disabling source code inspection |
medium
|
| 7886 | Avoid using SYSTEM-CALL |
medium
|
| 7888 | Web Dynpro - Never use direct calls to routine via "me->", use "wd_This->" instead |
medium
|
| 7890 | Web Dynpro - Never use INCLUDE statement |
high
|
| 7892 | Web Dynpro - Avoid changing the program flow |
high
|
| 7894 | Avoid using LOOP INTO, use LOOP ASSIGNING instead |
medium
|
| 7902 | Avoid SQL queries that no index can support |
medium
|
| 7904 | Avoid SQL queries on XXL tables that no index can support |
high
|
| 7906 | Avoid testing specific values for SY-UNAME |
high
|
| 7908 | Avoid unreferenced Methods |
medium
|
| 7912 | Avoid unreferenced Data Members |
medium
|
| 7934 | Avoid Superclass (or Interface) knowing Subclass (or Interface) |
medium
|
| 7944 | Avoid High Response for Classes |
medium
|
| 8012 | Avoid unchecked return code (SY-SUBRC) after opening and reading dataset |
medium
|
| 8014 | Avoid unchecked return code (SY-SUBRC) after AUTHORITY-CHECK |
high
|
| 8106 | Avoid empty IF-ENDIF blocks |
high
|
| 8114 | Avoid data corruption during incompatible mutation (ABAP) |
medium
|
| 8116 | Avoid calling system function (CALL 'cfunc') |
critical
|
| 8118 | Avoid using the RFC_ABAP_INSTALL_AND_RUN function |
high
|
| 8120 | Avoid using CALL FUNCTION without error handling |
medium
|
| 8122 | Avoid using CALL METHOD without error handling |
medium
|
| 8124 | Do not use function module DB_EXISTS_INDEX (HANA) |
medium
|
| 8126 | Avoid using empty SELECT ... ENDSELECT loop |
high
|
| 8130 | Avoid using database hints |
medium
|
| 8132 | Avoid using CHECK, EXIT,or RETURN in SELECT ... ENDSELECT loops |
critical
|
| 8134 | Avoid unsorted data after SELECT queries |
high
|
| 8412 | "CX_ROOT" should not be used in TRY .. CATCH.. ENDTRY block |
high
|
| 8422 | Avoid Using COMMIT WORK or ROLLBACK WORK during update work process |
high
|
| 8426 | Avoid calling database commands directly using system functions as "C_DB_EXECUTE" and "C_DB_FUNCTION" |
critical
|
| 8428 | Authorization check should be done before calling a transaction |
critical
|
| 8430 | Avoid using hard-coded seed or no seed at all for random values generation |
high
|
| 8432 | Avoid Cross-Client Database Access using Open SQL statements with CLIENT SPECIFIED/USING CLIENT addition |
high
|
| 8464 | Avoid Open SQL SELECT queries without WHERE condition on XXL Tables |
high
|
| 8546 | Avoid using ABAP command CALL 'SYSTEM' |
critical
|
| 8548 | Avoid using ABAP command INSERT REPORT |
critical
|
| 8550 | Avoid using ABAP command GENERATE SUBROUTINE POOL |
critical
|
| 8552 | Avoid using ABAP command OPEN DATASET with the FILTER addition |
critical
|
| 8566 | Avoid cyclic references in the definition of CDS views (S4/HANA) |
medium
|
| 8568 | Avoid calculated fields in WHERE-clauses and ON-clauses of CDS views (S4/HANA) |
medium
|
| 8570 | Avoid Calling RFC Function Module without Authorization Check |
high
|
| 8572 | Avoid using SUBMIT statement with another user permission |
high
|
| 8574 | Avoid using statement CALL TRANSACTION through variable P_TCODE |
high
|
| 8576 | Avoid using OPEN DATASET without Authorization Check |
high
|
| 8578 | Avoid using MODIFY without Authorization Check |
high
|
| 8580 | Avoid using GENERATE SUBROUTINE POOL statement without Authorization Check |
high
|
| 8582 | Avoid Dynamic Function/Method call without Authorization Check |
high
|
| 8584 | Prefer using OPEN DATASET statement with file Path instead of file name |
high
|
| 8586 | Avoid Insecure dynamic call of a function module through variable P_NAME |
high
|
| 1060020 | Avoid empty catch blocks for methods with high fan-in |
critical
|
| 1101018 | Avoid using the GROUP BY clause |
medium
|
| 1101024 | Avoid using dynamic SQL in SQL Artifacts |
medium
|
| 1101030 | Avoid Artifacts with queries on too many Tables and/or Views |
medium
|
| 1101062 | Avoid using multiple statements per line (SQL) |
medium
|
| 1104000 | Prefer using associations instead "left outer join" in CDS Views (S4/HANA) |
medium
|
| 1104002 | Prefer setting "many to one" cardinality for "left outer join" in CDS Views (S4/HANA) |
medium
|
| 1104004 | Prefer setting cardinality for CDS view associations (S4/HANA) |
medium
|
| 1104006 | CDS view association name should be defined according to the naming convention (S4/HANA) |
medium
|
| 1104008 | CDS View AccessControl.authorizationCheck should not be set to '#NOT_REQUIRED' or '#NOT_ALLOWED' (S4/HANA) |
medium
|