We have covered ABAP Test Cockpit Setup & Exemption Proces is one of our HANA ABAP Tutorial. In this article and in coming series, we would dive deep into ATC process and also look into SCI and SCII. I am sure, these topics would come very handy to all ABAPers who are keen into the quality process of SAP ABAP and also wants to make their code ready for HANA database migration.
Benefits of using ATC:
- ABAP Test Cockpit is SAP’s toolset for managing ABAP quality checks centrally.
- ATC is based on the SAP Code Inspector engine, so all SCI checks and variants can be reused. ATC will automatically use SCI+ instead of standard SCI if SCI+ has been implemented.
- Mandatory enforcement of a quality gateway.
- Integrated into the ABAP workbench.
- All check results are available via a central reporting mechanism which has filters and aggregations
- Has a robust process for managing exemptions and exceptions.
Functions available in the ATC tool are differentiated by roles:
- Perform one-time setup tasks such as ATC check run schedules and jobs
- Quality Assurance (QA) Lead
- Define check variants
- Monitor check runs
- Approve or reject exemptions
- Correct bugs or request exemptions
- Admin Users need to have role SAP_SATC_ADMIN
- QA Leads need to have role SAP_SATC_QE
- Developers will be able to use the tool and apply for exemptions if they have S_DEVELOP, ACTVT 02 or 03
- S_Q_ADM and S_Q_GOVERN are additional authorizations if required.
Also Read: Write your first Program in SAP HANA.
Initial Configuration – Maintain Check Variant (ADMIN)
The next step is to setup the basic configuration using the Configure ATC option. Check Variant from the previous screen is entered and system ID is maintained as own system ID. Behavior on transport release is set to Block on Error (can also be set to Warn on error).
Next step is to maintain the list of Quality Approvers. Only those users can be added as approvers who have necessary QA Lead authorization.
Run SE03 transaction and then go to Global Customizing. Set “Check Objects when Request Released” option to “Globally Activated” (default value is “Set by User”) and save.
TR release (Developer)
- While attempting to release a transport which contains ATC / SCI errors, the error message “Objects contains errors and therefore cannot be released” is displayed.
- This gets triggered only during the TR release. The individual tasks can still be released but can be stopped by implementing a classic BADI CTS_REQUEST_CHECK.
- The following link demonstrates the same: CTS_REQUEST_CHECK
Also Read: Create your first OData Service.
Setting Up Scheduled Runs / Central Results (ADMIN)
System wide scheduled runs of ATC can be setup by using the “Schedule Runs” option and clicking on “Create”. The name of the scheduled run can then be provided. In the following configuration screen, the SCI variant name and the scope of the Central Results can be restricted (by package/transport later / software component).
Triggering Central Results Run (ADMIN)
- Select the Central Results run just created and click on Schedule
- Select check box to indicate this is the Central Check run (other scheduled runs may also be scheduled for a specific use which may not be the Central run). Then click on Execute to trigger an one time ad-doc Central Run.
- A batch job may be setup via SM37 for periodically executing the above defined ATC Central Run by scheduling program SATC_CI_CFG_SERIES_SCHEDULE in the background.
Monitoring Central Runs (QA Lead)
- From the ATC main screen chose the Monitor and Control Runs option
- Enter selection criteria as required and then execute to see current and past Scheduled Runs
Viewing results of Central Runs (QA Lead)
- Select the Central Results run and then click on Result to bring up the detailed SCI report
- Using filters and the Statistics View options, the result list may be narrowed down as required
Viewing results of Central Runs (Developer)
- Go to the SE80 transaction. Click on Utilities menu > Settings. Go to the Workbench (general) tab and enable ATC Result Browser. This will enable ATC Result Browser to appear in SE80’s left pane.
- By using this option, current and previous central runs may be browsed.
Applying for exemption (Developer)
- The developer may request to apply for an exemption in case any SCI finding is a false positive or not valid in a particular context. Exemptions should be applied for only when all other valid SCI findings have been closed by the developer.
- Select the error message for which exemption is requested and click on Display details.
- This will bring up a Details pane on which the “Apply for an Exemption” link has to be clicked.
- In the first screen, mention the scope of the exemption.
- Please note that the following exemption will apply to all occurrences of the check message in the Sub Object/Object. It is not possible to apply for specific occurrences of the message and so all valid occurrences of the check message must be closed before applying for an exemption
- In the next screen choose Approver, Reason (False Positive or Others) and provide justification text. Click Complete.
Approving Exemptions (QA Lead)
- Goto ATC transaction and use the Exemption Browser option.
- Enter appropriate selection criteria and execute.
- Select appropriate Exemption and click on Process. It is strongly recommended not to directly click on Approve button since Validity Date will not get set.
- Click on Toggle Edit Mode in the bottom pane.
- Important: Enter a Valid Until date (mostly task release date) and click on Approve.
- On attempting to release the task again, it will be seen that the ATC Results list has lesser number of errors.
Frequently Asked Questions
- Is ATC replacing SAP Code Inspector?
No, ATC is a framework or toolset that enforces code quality control using the SAP Code Inspector (SCI) engine only. It ensures the use of SCI and can be configured to stop transporting a program with errors that are not approved by project’s quality lead/reviewer. The checks are performed using the Check Variant created in SCI.
- Is ATC available and can be used also in non-ECC systems?
Absolutely, all SAP systems that have SCI will also have ATC starting from some version post-Sep 2012. ATC will work in all these systems using the SCI engine.
- If code errors found by SCI are suppressed using pseudo comments (“#EC Comments), will it show up in ATC Exception list?
No, since they also will not show up in the SCI tool either.
- If during the review, one particular Error is Exempted by the reviewer, then will it automatically Exempt all occurrence of the same Error?
Yes, it will exempt all occurrences of the same error that are currently present or may occur in the future in the same sub-object. This is a SAP limitation (SCN post). So as a workaround, it is critical to use the Validity Date feature while providing exemptions.
- Once Reviewers approve a particular instance of an Exception, then does that need to be re-approved each time during releasing transport for the code?
Yes, if Validity Date feature has been used, all previous exemptions will need to be re-approved. The reviewers may sort by on the “1st Found” column in the ATC Results List for quickly determining which errors may have been newly introduced.
- Can ATC be configured to trigger during Task Release instead of CTS Release?
Yes, a specific BADI has to be implemented to activate ATC check while releasing a task.
- Can we exclude In-Progress Developments or include In-Progress Developments only in the Central Run?
No, all developments objects that satisfy the Central Run results filter will get picked up. However, in-progress can be filtered out in the ATC result list by specifying the program names, user name or any other filter can be thought of.
- Can the Quality Lead/Reviewer toggle exemption/rejection decision taken earlier on an exemption request, or change Validity Date?
Yes, Reviewers may go back to the Exemption at any time and edit the request to modify status or Validity Date.
- When the developer has modified an existing code, can we ask ATC to highlight the Errors in the Delta code only?
No, ATC will always check the full program/object/sub-object.
- Can we grant Mass Exemption for all ATC Errors in a particular version of existing code and then mandate ATC for any changes to the program?
No, it is not possible to grant exemptions to specific occurrences. Once granted, exemptions apply to all occurrences of the error message in the entire sub-object.
Hope this article helped you in clarifying some of the doubts in ATC Process. It is a very effective and useful tool for ABAPers and every developer should do the ATC checks himself/herself, before delivering the development object to the quality reviewer and moved to the quality system. After all, to provide quality deliverables to our client is one of the most important goals of any Implementation Partner.
Now, we want to hear from you.
Did you find this article useful? Do you want us to answer any other question in ATC? Do you want us to cover any other topic in SAP ABAP Quality Control?
In any case, please leave your comment, questions, and feedback below.