Product Information
The gCTS-Story Continues…
SAP S/4 HANA 2020 is there. It comes with new offerings and features for gCTS.
The most important one is maybe the new repository layout – we call it Layout Version 3. When you create new repositories, the new repository layout will be used, the file format will be set to JSON by default (as long as the repository is empty, you can also switch to xml if you like ) and support for table data will be included. With JSON as file format the readability of the repository content is improved.
But why is that feature that important? Do you really need it? Most probably yes – the new layout version is the prerequisite for one of the most wanted features since gCTS is out: You can now also push customizing transport requests into your Git repository and pull them into one client on the target system. Technically speaking, objects of the types TDAT and VDAT are supported – support for CDAT objects is not available yet , but we plan to include it, soon.
Using gCTS for customizing is very simple: Just enter the correct target system when creating the transport request – this is the virtual SID (vSID) that you defined when you created your repository.
You can find more details on the SAP Help Portal in the chapter Use gCTS for Customizing Data.
gCTS also takes first steps towards supporting conflict resolution
- Automatic push and pull are not an option, if you expect conflicts and need to resolve them. Up to now, gCTS used to pull the current state of the remote repository and merge the changes into that state before pushing. The consequence of this is that changes that were provided to the remote repository from another source could be overwritten by your new push as committing and pushing were executed at once . So, the first step towards conflict resolution is to stop this behavior. Therefore, you have to set two parameters for the repository (or on system level if you want to introduce the behavior for all repositories) Disable Automatic Pull and Push
- The Objects tab in the gCTS app provides the tools that you need to track files that cause conflicts. For conflicting files, you can open a conflict resolution UI which shows the local and the remote versions as well as a merge suggestion that you need to edit. Please check the SAP Help Portal at Use the Conflict Resolution Editor for more details
To give you an idea, what the conflict resolution UI looks like:
In addition, SAP S/4HANA 2020 comes with two improvements that help you setting up gCTS more smoothly and checking the configuration:
- The Wizard to Enable gCTS and
- the Health Check to get details if everything works fine or if there are issues.
Another good thing about the Enable gCTS Wizard and the Health Check: You can add them to your SAP S/4HANA 1909 system as well, by implementing a few SAP Notes or implementing a Support Package – Check the central gCTS Note 2821718 for details.
You can find many more details and links to documentation topics in the section Git-Enabled Change and Transport System of the ABAP Platform What’s new Viewer.
Hello Karin,
it's great to hear that gCTS gets enhanced and improved! We as a partner and customer look forward to this. From our experience with gCTS and after reading your post, I have some questions/feedback:
I noticed that the last link to the ABAP Platform What's new viewer is broken. It returns an error: "We're sorry, but this content is not accessible." Can someone fix this?
Thank you to you and your team for making gCTS possible!
Best Regards,
Hi Clemens,
Concerning your questions:
You can use SSL and SSH for authentication in gCTS in SAP S/4HANA 1909. The parameter for this is CLIENT_VCS_CONNTYPE. Documentation is available in here: This also supports GitLab
In SAP S/4HANA 2020 you can make use of user specific authentication in gCTS. Details are described in here
concerning the link for the What's New Viewer: it works for me...could you maybe try again?
Hope this helps
Kind regards
Karin
Hi Karin,
thank you for your prompt reply and sorry for my late reply! First of all, the link does work for me now. Seems like someone did fix this or it was some temporary issue :). My colleagues had issues with this link before too.
4. I see two places where this object comparison makes sense: a) Having a conflict in a merge to fix and b) You want to see the differences between objects between two commits or branches. It would be nice if you have a nice overview for all the changes; not just one by one in a single object/file. An example for this would be the great split or unified diff view of abapGit.
5. There were technical limitations in the gCTS SAP standard regarding these points so we had to modify the SAP standard on our own. SAP support confirmed that there was no solution for that yet, beside implementing your own changes.
We will make sure that we take a look at the new gCTS versions to see all the new features and details.
Thank you!
Best Regards,
Hi Clemens,
concerning 4. and another argument for looking into SAP S/4HANA 2020: with this release, you can use the compare functionality for branches to get the differences. Details are on the SAP Help Portal at Use the Branches Tab of a Repository.
Kind regards
karin
Hello Karin,
Exploring GCTS since for some time now, got some doubts...
we are now able to put almost all the configurations, also tested pushing the objects on Git.
But how we can pull the object through gcts, will it be an automatic import to Test system only, or we also can pull the same object to Dev again also.
If this is so, then we must have to configure Test system first, focusing on the domain controller part explained in blogs.
Or, still with only Dev system also it is possible to pull the objects to Dev back.
Hi Himanshu.
gCTS itself does not import or deploy anything automatically anywhere. gCTS creates out of the box a new commit when you release a transport request. This means the your customizing / coding is converted into files and stored in a Git repository. Nothing else happens automatically.
The commits are then available for all systems that are connected to the same repository (and have the respective branch activated). You could choose any commit from the list and activate it for your system. This can be a QA system or also the development system itself if you would like to activate older coding versions. But please be aware that there is not backup done for data that was created using later coding versions. If you activate a commit, the coding of that commit will be deployed and activated. This can result in a loss of data.
Details on how to work with the commits tab are available on the SAP Help Portal at Use the Commits Tab of a Repository
If you would like to automate the process of importing new commits e.g. into a test system, you would need to set up a pipeline. Some sample steps for this are provided in Project 'Piper'
The Library Steps that are made for gCTS in onPremise systems all start with gCTS - e.g. https://sap.github.io/jenkins-library/steps/gctsCloneRepository/
Kind regards
Karin
Hi Karin,
If I have traditional 3 box SAP system can I still use gCTS? why should I use gCTS instead of normal CTS?
Please explain.
Thank you!
Asanka.
Hi Asanka,
the idea of gCTS is explained in here: https://blogs.sap.com/2019/11/14/gcts-is-here/
gCTS is an option to move your ABAP development towards DevOps processes. It is not a must. CTS is still available and supported. You don't have to use gCTS if the transport processes provided by CTS fulfill your requirements.
Kind regards
Karin
Hi Karin,
Thanks!!!.
Asanka.
Hi Asanka,
this is hard to say from a distance. I am sure that you did look into it, but my only guess is that something with the token went wrong. Did you copy the token without any blanks in the beginning and in the end? On which release are you? If its a newer one, then is the selected endpoint type correct?
(in addition - not related to this error, but if tokens are running out of validity: did you store new tokens both for the 'real' users and also for the user who runs the observer job?)
Kind regards
Karin
Thanks Karin.
I will check the settings again and see.
by the way how do you create credentials in github for the user who runs the observer job ?
Thanks,
Asanka.
Hi Asanka,
you creta a 'normal' user on GitHub - noting special about this user - and create a token for this user. Then you open the gCTSApp of your ABAP system, log on with the user who runs the observer job and add this token to the credentials store of the user.
Kind regards
Karin
Hi Karin,
when I try to add gctsobserver as a collaborator I can't find gctsobserver on the list. how could I add 'gctsobserver' to the list? please help. That is the issue I guess.
Thanks,
Asanka.
Hi Asanka,
in which ist do you look for this user? If you try to find him on github.com because this is the user that we used in the openSAP course, then this is not possible. The user was just an example for the course. You need to make use of your own users.
Kind regards
Karin
I see. I think that explains it. Thanks Karin. I will create our own user.
Cheers,
Asanka.
Hi Karin
Is there any documentation on how to use gCTS for customizing data between two clients of the same system? gCTS App setup? How will we set up the repositories in the GCTS App and Git? I am assuming registry will be mandatory for that scenario? supported by SAP??
Thank you
Abhi
Hi Abhi,
currently, there is no documentation for that.
First thing you should have is (at least) one separate repository for customizing, Workbench objects should not be pushed into that repository. In addition, you should have on separate branch per source client.
Imports should be turned off to avoid imports when switching branches
To pull the same content into another client of the same system, you would need to log on to the gCTS App in that respective client and then do a deploy as described in here: https://help.sap.com/docs/ABAP_PLATFORM_NEW/4a368c163b08418890a406d413933ba7/36e4d0c2d0484c08923b77b01522c0d8.html
Kind regards
Karin
Hi Karin
Than you so much for the quick response.
We will try this approach and respond here, if we get stuck. 🙂 and/or if it does not work and maybe a support message.
Thank you
Abhi