Ensuring the health of an Abap development - is backed by serious tooling. The code inspector is a tool that is available from the Abap editor and it takes a serious look at your coding. I have done several projects where all coding was to be delivered code-inspector-error-free. And the use of compiler directives was not allowed.
Pragma's and compiler directives
Compiler directives are bits of comment-like coding like #EC DOM_EQUAL
which is an instruction for the code inspector to ignore the error specified. So how serious are code inspector errors ? This is how it should be seen: code inspector errors are somewhere between syntax errors and semantic errors. It is a serious effort to automatically detect problems in coding - which should be noted by the developer. So will code inspector errors lead to actual errors ? No, they won't in many cases. But they could - when unnoticed. It's a small effort for the developer to check the code inspector. Whether it is part of the project requirements - or not.
The code inspector / Extended program check doesn't check
You're trying the code inspector or "Extended program check" - which shows a single error:
Program SAPMZPOS cannot be tested according to system settings A possible cause for this is that an SAP program is being checked in a customer system Note, the following rule applies after a change in the source code: System setting is not taken into account for a week for testing Cannot be hidden using a pragma or pseudo-comment
What happened here is that the system assumes your source code is "foreign" - that is, it's SRCSYSTEM
as specified on table TADIR
is not the same as the system you are in. This may not be a correct assumption, but it disables the code inspector and Extended program check anyway.
The solution is quite simple: even though the source can not be checked, a copy of the source code can be checked. In my example a huge module pool SAPMZPOS
was copied to SAPMZPOS_TMP
leaving all includes in tact. The Extended program check was then done on SAPMZPOS_TMP
which was happy to reveal the check results.
Just to clarify: this is what the TADIR
table looked like, where my system was called SPD
:
PGMID OBJECT OBJ_NAME SRCSYSTEM R3TR PROG SAPMZPOS SPX R3TR PROG SAPMZPOS_TMP SPD
After some time - I found a rather easy way to fix this issue: simply change the main program in your (new) system and save. The TADIR
value for SRCSYSTEM
will be reset to your current system, and the code inspector will work again..