Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert

This is the first blog of the blog series about Remote Code Analysis in ABAP Test Cockpit (ATC).

See also blogs:

ATC Introduction

For those of you, who are using Code Inspector (SCI) and are not familiar with ABAP Test Cockpit (ATC) yet, it is SAP’s central quality assurance infrastructure for static functional, performance and security code checks, which bundles together the well-known and widely used quality tools like syntax check, SLIN, ABAP Unit, security checks and is extensible for your custom checks. ATC reuses Code Inspector checks and significantly improves the code quality by offering the uniform quality criteria for the whole development landscape and establishing new quality assurance processes (quality gates, exemptions, mass regression tests) to minimize errors in productive systems. Beyond this ATC is the toolset of choice to achieve the smooth migration of ABAP code to SAP HANA and SAP S/4HANA by means of special SAP HANA and SAP S/4HANA checks.


A very good general overview about ATC is in the blog ABAP Test Cockpit – an Introduction to SAP’s new ABAP Quality Assurance Tool. ATC is also integrated in the ABAP Development Tools in Eclipse (ABAP Test Cockpit for Developers in Eclipse).

Limitations

Imagine you have older systems (SAP_BASIS >= 7.00) with your own custom code base and would like to execute the latest security checks and SAP S/4HANA readiness checks for your custom code in order to get compliant to the increased corporate security requirements and prepare your code for the SAP S/4HANA migration.

One problem is, the ATC is only available with SAP_BASIS 7.02 therefore it isn’t present in your older systems at all. Another problem is, to apply uniform quality criteria for all your systems, the same checks must be in every system you want to check, that is not the case in heterogeneous landscapes with SAP_BASIS 7.02, 7.40, 750 and so on: every release has different checks. Besides this, the security checks are only available for SAP_BASIS 7.02 and the newest checks, e.g. for SAP S/4HANA readiness are only available with the SAP NetWeaver AS for ABAP 7.51 innovation package. Therefore it looks like you cannot apply the checks at all.

In fact, the way to tackle this problem is not easy: you need to upgrade the whole system landscape to the latest SAP release and support package level and run ATC with the latest checks on each upgraded system. It means on the one side a big administration overhead, on the other side the upgrade might neither be intended currently at your company nor possible at all. As a consequence, the compliance with the increased corporate security requirements cannot be verified and your custom code cannot be prepared for the SAP S/4HANA.

Solution - Remote Code Analysis in ATC

So, how to apply the newest checks to all your systems in SAP landscape without having to upgrade each of them?

Starting with the SAP NetWeaver AS ABAP 7.51 innovation package SAP customers and partners can perform remote code analysis in ATC which allows to analyze remotely with the latest checks custom code even in older systems using only one system for ATC (SAP_BASIS >= 7.51).

You would need to set up one centralized SAP NetWeaver AS ABAP 7.51 or 7.52 (SAP_BASIS only) system as ATC check system and run ATC with the latest checks centrally in one system checking multiple systems in your landscape. You don’t need to upgrade your whole system landscape and can apply the latest checks.

For the problematic use case from above it means, by setting up one central ATC check system using remote code analysis, you can apply the latest security checks and SAP S/4HANA readiness checks for your whole system landscape.

Setup

All you need to do is to install and configure one ATC central check system: pure SAP Basis System (SAP_BASIS >=7.51) within your SAP system landscape. ATC check variant is maintained only in the ATC central check system and must be RFC-enabled.

During ATC execution the central check system accesses remotely the systems in your landscape through so-called Remote stubs using RFC connection. Remote stubs serve as interface between ATC central check system and checked systems and return a model from custom code which needs to be checked.

See the blog Remote Code Analysis in ATC - Technical Setup Step by Step for more details.

PLEASE NOTE: not all central ATC checks can be run against all releases in your system landscape. As an example, ATC checks for ABAP CDS don’t make sense on older releases. You have to check carefully whether the checks used will work against the release.

Advantages

The advantages of using ATC remote code analysis are obvious:

    • Small impact on existing system landscape: no upgrade to the latest SAP release necessary
    • The central check system can be installed independently with low effort (no upgrade, no test for business processes)
    • One ATC central system can be used to check multiple SAP systems
    • Latest checks can be applied by upgrading the central check system only.
    • One quality standard for the whole system landscape possible, independent of uses releases in the development systems
    • All new checks will be implemented by SAP only in new releases
    • Administrative tasks only in the central system, e.g. maintain check variant
    • Centralized handling of exemptions
    • Baseline concept in case you want to suppress the findings from old legacy code

 

159 Comments
amitpdutta
Participant
0 Kudos
Thanks Barbel for your response.

Do you mean for Basis version 7.55, local variant will always be Default and we can not change it in the settings.

 

Regards

Kavita

 

 

 
BaerbelWinkler
Active Contributor
0 Kudos
I don't really understand what problem you are having. And because I don't have a 7.55 system available I cannot check it myself.

The message you get is just a warning because the change will take immediate effect within the system. You can still proceed to see what happens and if you do it at a time when not many users will be running ATC-checks, nobody will be impacted. If you don't like the result/effect, just switch it back to what it was before.

Cheers

Bärbel
amitpdutta
Participant
0 Kudos
Hello Barbel,

Sorry if some confusion with the issue details. Below are steps that i follow.

Step1: Change the global variant to Z_ABAP_ATC.



Step 2: Save


 

Step 3 : come out of transaction ATC and again open ATC tcode, global variant again go back to original.

 

BaerbelWinkler
Active Contributor
0 Kudos
You should be able to get over the warning with simply hitting Enter once or twice and then save. At least that's how it usually works.
amitpdutta
Participant
0 Kudos
Hello Barbel,

I tried but its still not working. Looks like it is picking the value from below tabs.

 


BaerbelWinkler
Active Contributor
0 Kudos
amitpdutta

Hi Kavita,

the check variant displayed in your last screenshot is fairly random, it doesn't have a bearing on which variant you want to pick elsewhere. Just make sure that you saved the variant as "global" and not a local check variant. You can tell the difference via the icon:


If you keep having issues, it might be better to open a ticket with SAP support.

Cheers

Bärbel
amitpdutta
Participant
0 Kudos
Thank Barbel for your response. I will check and raise the case to SAP if needed.
itmfru01
Explorer
0 Kudos
Hello Olga,

I have a strange behavior with one of our customers in the ATC test:
Only one package is checked:


No modified objects




In the object list of the ATC run monitor, however, objects from a different SAP namespace and package are also listed which is a bit strange:






The final result also contains findings in objects from other packages (excluding originally checked package via filter):




How can this behavior be explained?


Many thanks in advance for your support
Best regards
Norbert

OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert
Hi Norbert,

there are probably includes in the package ZS4E whose main programs are in other packages. When you check an include with the ATC, the entire main program is always checked (there is no other way because the compiler can only compile the complete program).


Best Regards,


Olga.