SAP GCTS or git enabled CTS is important as we move into S4HANA and in the blog series which I plan to write should provide the basics and to the path to SAP Dev ops using Jenkins.
What is SAP GCTS
The figure below gives an idea of what GCTS means
The source System can be DEV and Destination can be TST or TST can be source and PRD can be Destination. Git can be any of git providers we use GitHub . We can create two private repositories(one for workbench and one for Customization) in GitHub. When we create ABAP transports or customizing transports in GCTS enabled system the information is transferred to destination via Git - For this to happen there is background job that is scheduled on behalf of on Observer user who should be added as a collaborator to your GitHub private repositories.
SAP Version Perquisites
To use the full GCTS functionality we need S4HANA 2020 although you can use limited functionality in 2019 version.
Setup Steps on the GitHub Side
- Create a GitHub account if you don't have one and create two repositories as shown below here G7MA2KN7 is user id and I have created two repositories one for Workbench and other for customization both are private. Click on each of the repositories and add the Observer user as a collaborator for each of your repositories. This user should be provided to you by SAP BASIS and is as shown- The observer user should accept this request as well and is as shown below
Create the developer token which can be stored on the SAP side to access the repositories instead of using username and password as shown below
We have to Select scopes for repo, delete_repo and admin:repo_hook - others as well based on your requirements.
Save the token as this is displayed only once and we use this in subsequent steps
We have to do this for Customization as well. This completes the github side requirements.
2 Enable GCTS on S4HANA 2020
SAP has provided a Fiori App for this. Once you login on S4HANA - From your Fiori Launch pad search for Git as show below and pin this to your home page.
Once you open the app you will see Enable gCTS option button the top right and click on this to open the Wizard
Once the Wizard open you have to enter the parameters required by the Wizard such as gCTS Directory ( in SAP the local repository is on SAP system not on your laptop which is the case when you use non SAP system). The other parameters are java runtime(11), git client in our case it github.com. There are also other steps that are required to setup the SAP job for observer user. We can Further do a health check to see if the Setup is successful
3 Store your github credentials on the GCTS app on S4HANA system
Select the manage settings for user button on the right of the fioir app choose create credentials and choose token for Authentication and enter the token we saved in the earlier step
4) Now add the private repository urls for workbench and customization that we created on the github account. - Choose Create as shown below
The URL is the repository url for workbench, VSID is a 3 character code like first 3 of your User id and Private visibility and Role is development. Please note this process that to be repeated for Customization for DEV System as well. For Customization the VSID is last 3 characters of the UID. Once DEV is done we have to do this for TST as well The only difference will be the Role which should be
Provided. So in total we have to do this 4 times one customization and workbench for DEV and TST.
Once this is done we go about the usual way to create Workbench request and Customization and release the requests. The export process starts and when completed you will see these in your GCTS app and choose the repository as show below
The released transports will show up - you can choose import individual transports by click on the button on the transport or if there are more transports you Update to latest commit which will import all pending imports.
5) Check the Test System - Log on to the TST system and check if your transports are there and also verify in SAP TST System
6) In traditional CTS if we have done changes in DEV and move to TST and find that we need to undo - we have to do this in DEV system and re transport to undo so that TST is restored to the previous state - in GCTS this can be done directly in TST system - in the figure shown below we 3 commits two of them from ABAP and one from github intial commit (We have to include reame in github to create this). Suppose you are not happy with 3 rd transport in TST and want to restore to second Transport all you have to do is select the button Pull on that commit to make it Current Commit - You can check back in TST system to verify that changes from Transport 3 are removed from the TST system.
In the blog we have looked at GCTS and setup steps required to start using the GCTS system.