If you are an ABAP developer in an SAP Business Suite or an SAP S/4HANA Cloud, private edition (or SAP S/4HANA on-premise) system (further referenced as “on-premise” system), you have the option to check code for static quality issues during your development process using the ABAP test cockpit (ATC) checks from the central ATC check system in the SAP BTP, ABAP environment. More details are provided in the blog How to use ABAP Test Cockpit (ATC) in the cloud as a developer in an on-premise system.
In case your ATC finding cannot be corrected because, for example, it is a false-positive result or can be accepted in terms of quality, you as developer can request an exemption from your quality expert to suppress the finding from the ATC result. The ATC exemption can be requested in ABAP development tools for Eclipse. For the exemption processing, the new SAP Fiori app Approve ATC Exemptions must be used by quality experts to accept or reject exemptions from developers. This functionality became available with SAP BTP, ABAP environment 2311 (November 2023 release).
Prerequisites and Technical Setup
The prerequisite for working with exemptions is the enablement of the developer scenario between the central ATC check system in the SAP BTP, ABAP environment and on-premise systems.
Please follow the chapters Prerequisites and Technical Setup in the blog How to use ABAP Test Cockpit (ATC) in the cloud as a developer in an on-premise system to setup the developer scenario.
For more details, see the SAP Help Portal documentation Using an SAP BTP System as ATC Central Check System.
For approving/rejecting exemptions you will also need a business role based on the template SAP_BR_QUALITY_MNGR_SW_DEV (Quality Manager – Software Development).
For more details, see the SAP Help Portal documentation Enable Usage of the Approve ATC Exemptions App.
ATC Exemptions Workflow
To gain basic understanding of how to work with exemptions using ATC in the cloud during development in on-premise systems, let’s take a look at the example of the exemption workflow.
Just imagine, you as a developer in an on-premise development system want to check your code for static quality issues. To do this, you run ATC over your source code (open the context menu in the Project Explorer and choose Run As > ABAP Test Cockpit) in ABAP development tools for Eclipse and have the following findings displayed in your ATC result:
If you try to release the transport request containing this source code, your transport will be blocked:
Since you want to release your transport request, you will try to request exemptions from your quality expert for both findings.
For the first finding you could justify that no translation is needed for a log message. Please note that currently only all approvers can be chosen in the Approver field:
Now request an exemption for the other finding:
For this finding you are convinced that a hard-coded username shouldn’t be a problem:
As a quality expert on the central ATC check system in SAP BTP, ABAP environment, log on to the SAP Fiori launchpad, navigate to the section Custom Code Analysis and select the tile Approve ATC Exemptions to start the app:
In the app, you will see the two exemptions that have been reported by your developer:
Select an exemption to see that the Approve and Reject buttons will become active. You can use these buttons to process exemptions, the Exemption State is currently Open.
During the exemption process, you can also maintain the Exemption Details (to do this, select the “>” button in the table row with the corresponding exemption). In this section, you as a quality expert can enter your assessment elaborating on you reasons for rejecting the exemption:
After the exemption has been processed, the Exemption State will change to either Rejected or Approved:
Now, if you as developer recheck your source code with ATC, you will be left with only one finding, for which the exemption was rejected by your quality expert:
This issue must be corrected before you release your transport request.
Using the menu View Menu -> Include Exempted Findings you can anytime display the exempted findings again in the ATC result: