A gCTS newcomer experience
I would like to share our first experience with gCTS. I think this image by SAP provides an idea of the DevOps approach in regards to ABAP development:
As a beginning, I would like to give you an idea of our background. We gained our first experience with DevOps and GitHub in the ABAP context on our ECC system. We used abapGit in some of our projects. A couple of months ago we also started to get in touch with S/4HANA. Currently, we have a sandbox system based on a fully-activated-appliance of S/4HANA 2021 FSP 0.
To start our DevOps journey on S/4HANA our plan was to get gCTS up and running and then use it to pull some of our custom developments from our ECC system to the S/4HANA sandbox and to also pull some of our favorite openSource developments, like abap2xlsx. Spoiler alert, that plan wasn’t the best idea as a starter – but more to that later!
After some first tests, we found that these SAP notes were helping and provided a working gCTS app for us:
For error analysis, the transactions /IWFND/ERROR_LOG and /IWFND/MAINT_SERVCE provided useful insights!
After some troubleshooting, we found out, that things do not work out as planned. We discovered that abapGit and gCTS are not compatible at the moment. A pull from a Repository created with abapGit to gCTS is not supported. A simple error message, like “no objects found in Repository” would have helped a lot. For more information on the issue, see “gCTS-compatible Repositories #5340“. Fortunately, both sides seem to have the plan to change that by supporting the ABAP file format.
We changed our plan and found a workaround to still be able to reach our goal! First, we implemented abapGit on S/4HANA and used it to pull our custom developments and also the abap2xlsx tools. Then we added a Team and some members in the gCTS app and we created a new Repository on Github and also assigned Members there. This enabled us to push our custom developments (which were now on the S/4HANA sandbox thanks to abapGit) to the newly created Repository with gCTS (Once the transport request is released, the objects appear in the gCTS app). Now we can adapt our custom developments on S/4HANA and push changes to the new Repository. Once our S/4HANA landscape grows beyond the sandbox, we can easily import the Repositories to other S/4HANA systems using gCTS.
One learning was, that the status of the Repository has to have the correct status. We learned that from the job log of the observer job.
To create the team and add members, you have to create a team and then edit it to add members. Adding members is easy, just add their SAP user names! Make sure to grant read/write permission on the remote repositories on GitHub to each (SAP) user that intends to work with gCTS, Also, the access tokens defined in GitHub for access from within gCTS need sufficient privileges to access the repositories.
During our journey, we also learned, that it is currently not possible to push objects to different Repositories. The blog post gCTS in SAP S/4HANA 2021 by Karin Spiegel however provided some insights on how to utilize a BAdI and the registry to partly accomplish that. An important take from the blog was the following for us:
Up to now, the registry is not integrated in any process of releasing a transport request or in developing at all. We plan to publish a blog post on how this can be done by implementing a BAdI, soon. So stay tuned
We recommend that you use the registry for customizing that shall be handled via gCTS.
Now we are looking forward to the blog post on the BAdI implementation. Moreover, we are excited about how this will be integrated into the development process and also in the ADT. Thomas Fiedler any ideas and comments on that?
Outlook: Your next planned steps are checking out the new openSAP course (see below) and getting familiar with CI/CD Jenkins and the integration of that! Anyone who has experience with that?