The first problem was that transaction SCI is not available in SAP Cloud Platform ABAP environment and that there is no UI available yet in ABAP in Eclipse to create ATC check variants. This is planned to become available in one of the next releases of SAP Cloud Platform ABAP environment.
In the meantime there is the option to create check variants in an on premise system using transaction SCI and to import the same into our SAP Cloud Platform ABAP environment using abapGit.
Since the process is not self-explaining and since there are some small and tiny obstacles you have to know and work around I decided to publish my findings in a blog.
- ATC check variants can currently only be created in on premise systems using transaction SCI
- It is planned to provide an UI in ABAP in Eclipse for one of the upcoming releases of SAP Cloud Platform ABAP environment
- In the meantime it is possible to import ATC check variants into SAP Cloud Platform ABAP environment using abapGit
- Import of ATC check variants does not yet work in trial systems of SAP Cloud Platform ABAP Environment.
- For the import of ATC check variants authorizations based on the role template SAP_IT_PROJECT_MANAGER have to be assigned to the respective user and (typically) the appropriate role has to be created in the SAP Cloud Platform ABAP environment system first.
- The objects that are being created are not visible in SE80, but in TADIR and also ABAPGIT finds them 😉.
- Currently it is not supported to re-import an ATC check variant (see section restrictions at the end of this blog)
Create a ATC check variant using transaction SCI
We start our journey with creating an ATC check variant for calculating the software metrics of a sample report as described in Christian Drumm ‘s blog Software Metrics in the Code Inspector mentioned above.
The first problem I ran into was that I wasn’t able to run the ATC check variant from within ABAP in Eclipse because I did not read Christian’s blog carefully enough and I forgot to make the check variant “Global”. This is done by clicking on the push button on the left side of the name field. You are then able to toggle between Local and Global check variants.
When you click on Create the following screen opens:
On this screen you have to make sure to activate the check box Transportable.
In order to get into the screen where you can maintain the thresholds for the warnings you have to
- activate the checkbox for Procedural Metrics and
- click on the highlighted icon (a square with an arrow on top)
The second step took me a while to find out.
If you now press Save (having the checkbox Transportable activated (!) a popup to confirm the creation of a new object directory entry shows up.
Here we have to specify a package ZMCCABE_EXAMPLE so that we can push the ATC check variants to a Git repository.
Export objects using ABAPGIT
In ABAPGIT we create an online repository in a Git repository that is connected to your ABAP package and that is accessible from your SAP Cloud Platform Environment system and push the changes to this repository
Creating a role in SAP Cloud Platform ABAP Environment
If you try to import the content of your Git repository right away you will get the following error message “You are not authorized to create global check variants in this system“.
In order to assign the missing authorization you have to create a role based on the business role template SAP_BR_IT_PROJECT_MANAGER.
In the wizard you now to create the role and assign it to your business user.
Do not forget to maintain the restrictions of the role so that write access is enabled.
Import objects into SAP Cloud Platform ABAP Environment
Now we are ready to start the import (again).
this time the import should be successful.
and we will now be able to check the test class using our just imported ATC check variant from whithin ABAP in Eclipse. Please note that you can start typing “Z_” and then use Ctrl+Space to get a list of ATC check variants that are available in the system that start with “Z_“.
The findings are the same as in the on premise system .
There is currently the restriction that the import does not support overwriting existing ATC check variants.
If you try to import your ATC check variants a second time you will receive the following error message “<name of ATC check variant> already exists in this system“.
As shown in the following screen shot a workaround is to create to copy the ATC check variant and import it using a new name.