Dear SAP Community Member,
In order to fully benefit from what the SAP Community has to offer, please register at:
Thank you,
The SAP Community team.
Skip to end of metadata
Go to start of metadata

Code Inspector

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)
  • No labels


  1. Could you please updates the links to the code inspector user guide?

    Also, another question: how can you configure the code inspector to perform check on a remote system? Use case: The local system has a higher version of CI, and I want to check issues on another system on a lower release level.



  2. Former Member

    Hi Michael,

    Here you find some information on performing checks in a remote System:
    As user guide, currently there is only the SAP Help documentation.

    Best Regards, Randolf

  3. Former Member


    If I need to check de ABAP custom code for a Business suite migration to Hana with a Netweaver 7.00 SP 30, what checks do I need to select? I don't have the FUNCTIONAL_DB variant  or ATC functionality.


    1. Former Member

      Hi Sergio,

      Checks and check variant for SAP HANA migration are not available in NW 7.00. You will have to use the remote check capabilities of Code Inspector, see my response to Michael above.

      Best Regards, Randolf

  4. Hi Randolf,

    Using the Code Inspector functionality to automatically check objects when a transport request is released (SE03), I would like to know if it register anywhere the result of the inspection made to these released transport request, allowing:

    - future inspection results review ?

    - to confer the released transport request with Code Inspector errors in a certain time interval, for instance in the last week / month ?

    Thank you in advance

    1. Former Member

      Hi Nuno,

      Inspections of transport requests started from SE03 are not persisted. You can persist the result if you create an inspection with transaction SCI and select 'Request/Task' in the 'Object Selection' of the inspection. But for monitoring the quality of released transports, this is a little bit cumbersome.

      Best regards, Randolf


  5. Dear Randolf,

    Thanks for your explanation of SCI functions.

    I have a question: Is there a way to store name conventions for Badi's in the Code Inspector (transaction SCI)? 


    Best Regards, Julia Song

    1. Former Member

      Hi Julia,

      Currently, there is no check in SAP Code Inspector to check naming conventions for BAdIs. You will have to build it yourself!
      See also the very, very old document: Documentation: How to create a new Code Inspector check

      Best Regards, Randolf

  6. Hi Randolf,

    Thanks a lot for this wonderful guide. I have found it searching for solutions to my following request: My customer has a list of custom programs which they need to identify whether or not they perform database updates (either to standard or custom tables).

    I have used successfully code inspector tools to search for UDPATE, DELETE, INSERT and MODIFY instructions. Also I can identify if a program has internal calls like SUBMIT, CALL FUNCTION or CALL TRANSACTION. However, I wonder if there is any way to tell the code inspector to extend inspection to deeper calls, since the original number of programs is incresingly growing due to internal calls to other programs, transactions or functions.

    As of now, every time I find a function module call, transaction call or program submit, I have to repeat the code inspection for every single of these deep calls.

    Furthermore, Code Inspector does not allow me to check Standard objects (programs, function modules) so I have to do the check manually for these items.

    Could you please suggest any ideas to try for this request?

    Thanks in advance and Best Regards,

    Sinuhe Serrano

    1. Former Member

      Hi Sinuhe,

      There are some newer Code Inspector checks that are capable of following the static call stack (for example "Search problematic statements for result of SELECT/OPEN CURSOR without ORDER BY"), but they are a little bit more tricky than the simple searches. One problem that you get is that if you follow the call stack over several levels, you will have to analyze most of the code in a system.

      Do you mean SAP objects if you want to check Standard objects? As you may know, Code Inspector does not allow to check SAP objects in a customer system, with the exception of code recently modified by an SAP note.

      Maybe you could use the object collector "Called/Calling Procedures" which should be able to find called programs and build an objectset based on the static call stack. But I think it is only available in the newest NW releases.

      Best Regards, Randolf 

      1. Hi Randolf.

        Thanks for taking your time to reply. I'm exploring options to meet my customer requirement. It's a set of about 500 programs for which I have to determine if they perform any database updates for each one of them.

        This task can take me ages to complete, that's why I was searching for standard options.

        Again, thank you very much for your help.

        Best regards.

  7. Former Member

    Hi Randolf,

    I'm currently working on a HANA migration project for a major SAP user in Norway. The customer has quite a lot of custom code programs (~ 20.000 objects!). Unfortunately, there  has also been done quite a lot of modifications to standard code. Some with, some without modification assistant. 

    Code inspector is only working on self-developed objects, not SAP standard objects, so we are not able to check the modified objects for HANA compliance issues.

    Are there any workarounds to check the modified SAP objects?


    Ole Kristian

    1. Do you mean SE03? You can check Modification Browser for modified objects and Display Repaired Objects.

      1. Former Member

        Hi, I mean I want to run SCI on the modified code in an SAP standard object without having to do it manually for each modified ojbject.


    2. Former Member

      Hi Ole Kristian,

      SAP once decided that "Code Inspector does not allow to check SAP objects in a customer system, with the exception of code recently modified by an SAP note."
      So I cannot support you here, I am sorry.

      Best Regards, Randolf