Skip to end of metadata
Go to start of metadata

Code Inspector

Features 
The Code Inspector is a tool for checking static ABAP coding and DDIC objects (i.e. generally all objects of the Object Repository) under aspects of functional correctness, performance, security, reliability, and statistical information.

It helps developers to adhere to programming standards and guidelines by creating messages on less-than-optimal coding. The Code Inspector offers various possibilities to define object sets and to combine multiple single checks in so-called "check variants". These functions, and the tool's parallel processing framework, make the Code Inspector a flexible and effective development assistant. 
The Code Inspector can be used in various scenarios with different types of checks, thus providing insights into the code quality from various angles.

Usage scenarios

  1. Single object checks from the Development Workbench
    You can check a single object with the Code Inspector from the ABAP Editor (transaction SE38), the Function Builder (transaction SE37), the Class Builder (transaction SE24), or the ABAP Data Dictionary (transaction SE11). To do this, choose <object> > Check > Code Inspector from the menu, where <object> can be a program, function module, class, or table. The respective single objects are then checked with a default check variant.
  2. Checks on transport objects from the Transport Organizer
    You can invoke the Code Inspector from within the Transport Organizer (transaction SE09) to check objects in a transport request. To do this, choose Request/Task > Complete Check > Objects (Syntax Check).
  3. Checks on sets of objects from transaction SCI
    The Code Inspector (transaction SCI) itself enables you to create a wide range of object sets using standard selections via package, software and application component, source system, transport layer, responsible, object type, object name and so on.
    In addition, special object collectors are available that allow you to read objects from a file, for example.
    An object set can be combined with a check variant to a so-called "inspection" that can be executed in a single process or in parallel. For a more details see Code Inspector User Manual

Types of checks and check variants

Below is a short extract of the types of checks and functions that are offered by Code Inspector. New checks can be implemented if required, see for example Code Inspector - How to create a new check.

You can combine any of these single checks into so-called "check variants", for example to check for the adherence to given programming guidelines.

Best Practices

Developers can use the Code Inspector to support their everyday work. For example, the search functions or metric checks of the tool can be a great help when restructuring the code.

The Code Inspector allows developers to define which objects are to be checked and which quality aspect of the code is to be inspected (e.g. performance, security).

It is also possible to define global check variants as general programming guidelines, to ensure standardized programming within a development community. Check variants can prescribe for example naming conventions or other rules. The global check variants 'DEFAULT' and 'TRANSPORT' inspect objects in the development workbench and in transport requests, respectively. These check variants contain SAP-defined settings, but can be modified as needed.

Another global check variant delivered with every SAP system is 'PERFORMANCE_CHECKLIST' which helps to detect less-than-optimal coding with regard to application performance.

Related tools

  • ABAP Test Cockpit (ATC) : ABAP check toolset which allows running static checks and unit tests for your ABAP development objects
  • Syntax checks: standard syntax check is integrated into the ABAP editor. Extended syntax check (transaction SLIN)
  • Dynamic performance checks: performance trace (transaction ST05 ) for SQL (database access) / SAP enqueue / RFC trace analysis, ABAP runtime trace (transaction SAT  or ABAP profiler) for application code
  • Performance in a system landscape: global performance analysis (transaction ST30)

Further Reading

Book: Praxishandbuch Code Inspector (German)

Documentation: Code Inspector User Manual

Documentation: How to create a new Code Inspector check

Blog: Code Inspector - How to create a new check

Best Practices: Manage Code Quality with Code Inspector

How to trigger ATC or Code Inspector checks during the release of a transport task

Code Inspector's Performance Checks

  • No labels