Skip to Content
Technical Articles
Author's profile photo Karin Spiegel

Some answers for the gCTS Community Call

On 24th November, I tried to explain and show the Git-enabled Change and Transport System (gCTS) in the SAP Community call ‘Introduction to Git-enabled CTS’. Many questions remained open when time was over. Let me try to answer them in this blog post. I tried to summarize similar questions – so it might be that you cannot find exactly your question but hopefully all the topics are covered. If not, please use the comments for this blog post to ask your question.

Q: Why should we go for GitHub and all this stuff for ABAP in a normal 3 System Landscape?
A: There is maybe no reason to use gCTS in a pure ABAP environment. Classical CTS is available, and it will stay available. If you are happy with the process and flows that you use in CTS, continue using them! gCTS is made for cases, where CI / CD processes in a DevOps minded environment are needed for ABAP as well. gCTS is somehow the door opener for ABAP development into this world. With gCTS, it is e.g. possible to set up pipelines for ABAP development.

Q: gCTS only for SAP S/4 HANA possible? Not for ERP ECC? is there anything similar to gCTS available or planned for SAP ECC?
A: Currently, there are no plans to downport gCTS to anything below SAP S/4HANA 1909. For some parts, this is even not possible at all from a technical perspective.

Q: Is the strategy in the future is to replace the old STMS (as all the existing features are planned for gCTS ?)
A: There are no plans to replace CTS / STMS.

Q: Can we mix old STMS concepts and gCTS for deployment? Is it possible to have the classical CTS and gCTS to be running in a parallel? How can we choose which released transports go to git, and which go through the classical CTS path?
A: Yes, you can use classical CTS and gCTS in parallel for one system landscape. The transport layer determines which way a certain object goes. But you should decide once how a certain object is handled and not switch from classical CTS to gCTS and back and forth at every change of the object.
After a transport had been released, you cannot switch from one tool to the other anymore. What you can do is adding objects of a certain transport request to a repository. With this, you don’t have to change every object that you would like to handle via gCTS to add it to a new transport request. This is helpful to initially fill your repository with the objects that should not use classical CTS in the future anymore. Additional information is available on the SAP Help Portal in the topic Manually Push Objects

Q: How does gCTS work with ChaRM (Change Request Management of SAP Solution Manager) and Focused Build.
A: First steps for an integration of gCTS into ChaRM are planned for the next SP of SAP Solution Manager 7.2. When this is published, we will also provide documentation explaining the details how this works in combination with STMS and classical CTS. Integration in Focused Build is not planned yet. How gCTS in ChaRM will work with CSOL and DGP is currently in some kind of planning phase. It might even be that some of the functionality is not needed if gCTS is in use. Transport requests are no longer the single source of truth for your ABAP objects. The coding to be imported is determined by the commit that you choose. Older or newer versions are not overwritten in the git repository. They are just part of another commit that is maybe currently not active in your ABAP runtime.
You can also get more details in the TechEd session Change Control Management: Building a Bridge for CI/CD in a Hybrid Solution [DEV104]

Q: How to enable gCTS when we have a pure backend for all ABAP objects when we have different frontend system for Fiori?
A: The recommendation is to use the embedded Fiori. Carola Steinmeier describes that in her blog post SAP Fiori Deployment Options and Recommendations. There is also a blog post available written by Jorge Baltazar SAP Fiori for SAP S/4HANA – Transition from Standalone to Embedded Deployment in SAP S/4HANA to learn how to move from standalone to embedded deployment.
If you still decide to use the hub deployment, from a gCTS perspective, you need to activate the cts_abapvcs and the bc_cts_git services in the SICF transaction, and add the SAP Fiori Tile Catalog SAP_BASIS_TCR_T (SAP: Application Services) to the user roles that will use the gCTS app.

Q: see http in the URL (right, port 50008), not http(s) this right?
A: gCTS uses https (SSL) for sure. SSH is also possible. Http in the demo was only due to a special internal demo environment that I used. More details are described on the SAP Help Portal in the topic Repository-Specific Authentication Options:

Q: Is the UI that we saw an officially released app?
A: The official App is the application called Git-enabled CTS which is available in the SAP: Application Services catalog. In the demo, I used a special version that is not published. But the difference is only that I had a system list on the left-hand side

Q: Is this part of the Trial Account
A: In SAP Cloud Platform, ABAP Environment, the Software Component App which uses gCTS in the background is part of the trial. Other features of gCTS are not available in SAP Cloud Platform, ABAP Environment.

Q: How would you setup a single git repository, where different branches should be deployed to different S/4HANA environments? We assume a scenario where we are providing a standardized product/service to multiple different clients, make a new version of the product and want to roll it out to our clients.
A: One branch is active for a certain system. What is provided in this branch can be imported into the ABAP runtime by using the functionality on the Commits-tab. It is always possible to switch branches and if you do so, the coding of the selected branch will be imported into the respective ABAP runtime. All the branches that exist for one repository are visible in the gCTS App in each system that is connected to the repository.

Q: Can gCTS also be integrated in Azure DevOps?
A: In principal, yes. We plan to publish the required API. The steps provided in Project ‘Piper’ do not completely depend on Jenkins. Please check the documentation in project ‘Piper’ to get the details what can be done in Jenkins only and what is possible outside – like e.g. for the step gctsExecuteABAPUnitTests

Q Is Jenkins mandatory for the rollback feature?
A: We have a special step in Project ‘Piper’ that is made to add a rollback to a pipeline: gctsRollback. But the functionality behind the rollback is available via the gCTS App: you can pull any commit from the commits list on the Commits tab into the respective ABAP system. Doing so will update the objects in your ABAP runtime to the version that is part of the respective commit. Details are described on the SAP Help Portal in the topic Use the Commits Tab of the gCTS App

Q: Is it possible to do a preliminary import with gCTS? I mean import a single change in production and not the entire release assign to a branch?
A: Updates to an ABAP system are done on commit level. In the standard, a commit is created whenever you release a transport request. You can change that to creating commits when a task is released. This requires implementing a BAdI.
You can pull any commit into your ABAP system and thereby import the objects that are part of the commit. The differences between the commit that you chose and the commit that was active previously, are calculated and are imported.
If you switch the active branch in the gCTS App for a repository, then the latest commit is imported into the ABAP runtime.
You can influence the import behavior by setting parameters. Details are described on the SAP Help Portal in the topic Update ABAP Target Systems

Q: Does gCTS work with all object types? Even objects that are classic “outdated” ones (e.g. generated table maintenance views require entries in SAP tables like TVIMF along with the coding to work properly)?
A:The way how transport requests are used in the development process is the same for classical CTS and for gCTS: all objects that are touched are tracked in a task. When you release the task and the transport request, a new commit is created that contains the objects that are part of the respective transport request. Therefore, any object that can be part of a transport request can be part of a commit. (Note that for customizing objects, support for CDAT is not available up to now). The import is done again by the same tools (tp and R3trans). When you choose a commit to be pulled, a new transport request containing the differences between the status of the objects in the system and the commit that you chose is created and imported. Note all of this is valid for SAP S/4HANA on Premise. The situation for SAP Cloud Platform, ABAP Environment is different. In there, gCTS is used in the background when you work with the Software Components App. You cannot use gCTS in there directly to e.g. manually push objects to the repository. It is therefore not possible to get any objects into the system that are not allowed in SAP Cloud Platform, ABAP environment

Q: Where is the object serialization of objects done and how performant is it? I’ve worked with abapGit and serialization in abapGit is rather slow for developments with thousands of objects. Is this better in gCTS?
A: Serialization is done when the transport request is released. The transport tools have been enhanced to be able to do so. ABAPGit is an open source project and not owned by SAP. Therefore, we are not conducting any comparisons between the two tools.

Q: Are there any other instructions, than project PIPER, Wizard or Note, available for step-by-step how-to guide (possible by video) of how to setup gCTS to connect an S/4HANA environment to a git repository
A: The configuration required for gCTS is described on the SAP Help Portal. Creating repositories is described in the topic Configuring Repositories. If you follow the topic and its sub-topics, that will guide you through the configuration. Video is not available up to know but we plan to enhance our documentation with some in the future.

Q: With every commit, we can push a TR or a task also, but can we push multiple TRs in one go?
A: Commits are created by default when you release a transport request. To create a commit when a task is released, you have to implement a BAdI. These are the options that we have. You cannot combine several transport requests in one commit. But – if this is the origin of the question – you don’t have to import each commit. Just import the latest commit and all the changes that were done in between, will be imported as well.

Q: How does gCTS handle changes of multiple developers in the same object? Does it support hunk selection or some similar mechanism? How does the overwriting of changes work if two/more developers work on same SAP object?
A: The mechanisms of the development workbench (SE80 or ADT) are not touched by gCTS. The functionality that an object can only be changed by one developer at a time remains in place. You can still change only the active version of the coding. The version of an object that is active when a transport request is released, will be committed. If an object is committed of which the coding before that respective change of that transport request was different from what is available in Git, then conflicts will come up, if the repository is configured accordingly. This is possible starting with SAP S/4 HANA 2020. Details are available on the SAP Help Portal in the topic Resolve Conflicts.

Q: Do we have controls for overwriting risks when you merge the development in the branches? Or define critical objects? or manage retrofit? In other words: has Git some Change Control tools?
A: I can’t speak for what Git does in general. Starting with SAP S/4HANA 2020, gCTS comes with a conflict resolution UI that you can use to work on conflicts. This requires that you prepare your repository in the gCTS App by setting two parameters. If you don’t set them, changes might be overwritten. You can find more information on the SAP Help Portal in the topic Resolve Conflicts and Use the Conflict Resolution Editor. This should be used when you do merges and end up with conflicts – which is most probably the case when you do fixes to n object and would like add this fix to your feature development, as well.
Another aspect in here: you can see the list of commits in the gCTS App and you can activate any of these commits. Be aware that this might include loss of data if you switch back to older versions of the coding that cannot handle the data that had been created based on the newer version.

Q:How does the multiple package mapping works from on-premise to git rep?
A: In gCTS, a transport layer (to a virtual SID in STMS) is used to decide whether a package or some objects that are part of the package shall be sent to Git as a commit or whether the classical CTS and transport routes shall be used. You can use the same transport layer for many packages. A transport layer is assigned to a repository. So all objects that make use of the same transport layer will be part of the same repository in Git. If you need special conditions or cannot change the assignment of packages, another option would be to implement a BAdI to define what shall go to Git. The BAdI implementation is described in the blog post Create a commit in Git when an ABAP task is released. The blog post focuses on how to create commits when releasing a task – but you define also conditions in there when this commit is created, and you can set them according to your needs.

Q: Have seen, you only releasing the Tasks not the TR. When finally to be moved to Prod, how it goes with out TR released
A: First of all, working on a task basis to create commits requires implementing a BAdI. The BAdI implementation is described in the blog post Create a commit in Git when an ABAP task is released.
Without this, commits will only be created when a transport request is released. But also, with the BAdI implementation, an additional commit will be created when you release the transport request.
Anyhow – transport requests don’t follow the transport routes into the import queue of a system, anymore, if you use gCTS. One option to manage the deployment of new software into production could be to use two branches: one for development (and test) and one for production. After development is finished and has been tested successfully, you could initiate a merge of the development branch into the production branch. This would be done via a pull request in e.g. GitHub. And only after the Pull request is finally approved, new software can be imported into production as only then, all the new and changed objects are available in the branch that is active for production.

Q: Can you merge ABAP and non-ABAP (open SQL)
A: You can use a mono-repository – if this is the question. Otherwise, gCTS does not provide any new development tools. It makes use of the transport mechanisms and tools.

Q: Will ABAP parallel development be possible on ABAP Cloud?
A: gCTS in the way you saw it in the session is only available in SAP S/4HANA 1909 and 2020. SAP Cloud Platform uses gCTS for managing Software Components. But in there, you currently cannot work with the repository or with commits other than what is provided in the Software Components App.
In addition and in general: gCTS does not allow parallel development. The object locking mechanisms of the ABAP workbench are still in place

Q: Do you have any best practice for organization the new gCTS. cause in the “old” world sap basis guys are manage/setup CTS but now they should have knowledge about git, jenkins but this knowledge isn’t in the SAP ABAP admin’s mind
A There is no best practice for this. I think that this is a learning curve. Developers need to get into the mindset of the DevOps world and learn. Basic idea could be to start with a small project which is decoupled from the rest of your ABAP development and which can be used as playground. Use this to get some experiences with gCTS. You don’t need extra systems for that. gCTS can be used in parallel with classic CTS. A staring point could maybe also be page Continuous Integration and Delivery by SAP on the SAP Help Portal to learn about CI/CD in general – not specifically for ABAP

I hope that I could clarify some questions. Feel free to comment on this blog post to start further discussions or ask additional questions

Assigned Tags

      58 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Amandeep Bal
      Amandeep Bal

      Hi Karin,

      We are trying to configure gCTS in our internal systems and trying things out. How do we relate a git repo to the transport request? Intent was to send one ABAP package via transport request to a specific git repo. As of now we have 100+ packages in the system. Idea is relate a SE80 package to a GitHub repository, 1:1 relationship.

      Thanks

      -Aman

       

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Aman,

      when you create a repository, you have to name a virtual SID (vSID) which consists of three letters. A non-ABAP system with this SID is created in TMS. The transport layer that results out of this SID (so Z<SID>) has to be used for every object / package that shall be pushed to the repository when you release the transport request.

      If you would like to fill your repository with packages that already exist, you don't need to create a new transport request. You can also manually push existing transport requests. You can find more details on the SAP Help Portal: https://help.sap.com/viewer/4a368c163b08418890a406d413933ba7/202009.002/en-US/d7ffc00f4f304f4a9e7a13a09878980d.html

      Allow me one additional remark: there is no need to use a separate repository per package. Do you have a special reason to go for that approach?

      Author's profile photo Daniel Szortyka
      Daniel Szortyka

      Thanks Aman.

      That's exactly the question I posted here: https://answers.sap.com/questions/13493996/release-tr-while-using-git-enabled-cts-gcts.html

       

      Hi Karen,

      Let's say we have a teams working under Finance Space, another team working in Manufacturing space. Ideally we would have two different repositories in gCTS, each one linked by different github repositories, and mostly used by different package levels.

      At our tests by using different repositories, for now, let's just consider we will have different teams working on different package levels.

      When we released a TR directly by SAP (SE09), all our repositories in gCTS received the released objects, even though they were not attached anywhere.

      We are still considering and evaluating how a group of Developers would be working with these new tools and processes.

      It seems to me that, it's better to have someone (PO, Project Leader, DevOps Engineer) creating the repository at gCTS level, attaching the github repository and adding configuration parameters.

      Developers would be adding and pushing their objects by the gCTS Fiori page and letting Jenkins and project piper do its thing.

      Our plan is to have Developers checking their code with virtual forge and add other validations like worksoft business tasks with Jenkins pipeline.

      This questions and considerations appears to be valid for ABAP. While our tests with Fiori objects we are still using two repositories and handling both with Jenkins, one repo for OData and other objects and another repo only for Fiori Application artifacts.

      Any comments on that would be appreciated. Thanks in advance.

      Author's profile photo Amandeep Bal
      Amandeep Bal

      Hi Karin,

      We have exactly the same question as outlined in the following post

      https://answers.sap.com/questions/13493996/release-tr-while-using-git-enabled-cts-gcts.html

      Our objective is to send packages and underlying objects to their own repositories created in github. Package to repo relationship is 1:1. No other packages should be allowed to commit object to other repositories.

      ABAP Package Github repo  System  VSID
      ZABC https://github.com/zabap.git ABC ZAAA
      ZXYX https://github.com/zxyz.git ABC ZAAA

      Is this achievable via gCTS ? As of now we are using ABAPGit and we send 1 package to one git repo and we like the way it is, as its clean.

       

      Thanks

      Aman

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Aman,

      if you would like to use different repositories for different packages, you have to use different transport layers - which  means that you have to use different vSIDs. Please also refer to my answer in here: https://answers.sap.com/questions/13493996/release-tr-while-using-git-enabled-cts-gcts.html

      Kind regards
      karin

      Author's profile photo Stefan Ruf
      Stefan Ruf

      We also set up gcts in our system and are using it in daily development, but we do not use the "one sid per repository" approach.

      We use a single sid for all repositories and are using the mentioned badi to determine which repository the transport belongs to with custom logic. This is done either via the transport attribute SAP_SCTS_AVCS_TARGET (the target repository) and GIT_BRANCH or via the gcts Registry where all previously committed objects and packages are registered to a repository (https://help.sap.com/viewer/4a368c163b08418890a406d413933ba7/202110.000/de-DE/3c88a27e05f845a6b0f1e755c664b5d2.html).

      Whenever an object or a package of an object is registered to a repository, it cannot be comitted to another repository to prevent duplications or mixups.

      Author's profile photo Philipp Nell
      Philipp Nell

      Hello Karin,

      Thank you for all the effort in the blog. I did some research and came to a question...

      Having the Central note 2821718 - Central Note for Git-enabled Change and Transport System (gCTS) the component BC-CTS-GIT assigned, I assume that gCTS will work with BW/4HANA as well, as long as maybe version / SP levels are reached (BW/4HANA 2021 comes with UIBAS001 700)

      The relevant software component seems to be UIBAS001 plus ABAP Kernel.

      Am I correct?

      At least the BW bridge of DWC is using gCTS (Note 3130759 - SAP Data Warehouse Cloud, SAP BW bridge: Software Component, Package, Transport Request).

      Note 2888887 is also not clear on this for me.

      Any input is highly appreciated.

      Kind regards,  Phil

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Phil,

      gCTS as it was presented in the session to which this blog post refers is the on premise version. For this case, the important thing for gCTS is that the release of SAP_BASIS fits for gCTS so that the kernel version including the abap2vcs.jar, the ABAP layer and also the UI have the correct versions that fit together. gCTS was first shipped with SAP S/4HANA 1909 - so any basis release higher that would be fine for gCTS on premise.

      Note https://launchpad.support.sap.com/#/notes/3117800 describes SAP BW bridge as a cloud component. gCTS cannot be use in its full extend in the cloud. Especially the gCTS app which allows working with repositories and commits is not available in the cloud. Instead, gCTS is used in the background when you transport a software component, but repositories or commits are not open for working with them directly.

      Note 2888887 is about limitations that gCTS has in general in some onPremise releases. It is mainly about customizing transports that we were not able to support in the beginning.

      Does this answer your questions?
      Kind regards
      karin

      Author's profile photo Philipp Nell
      Philipp Nell

      Dear Karin, Thank you very much for your time and effort. Kind regards, Philipp

      Author's profile photo Sri Krishna Chaitanya Kuppili
      Sri Krishna Chaitanya Kuppili

      Hi Karin,

      can we use gCTS for conflict resolution during dual maintenance between ECC and S4.

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Sri,

       

      this is not possible. gCTS is only available starting with SAP S/4HANA 1909. ECC releases do not support gCTS

       

      Kind regards

      Karin

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Hi Karin,

      I was trying to create the git Repository in gCTS it throws an error

      '[GCTS.API.703] Could not create repository 'asankadl-gctsr'.' what could be the reason behind? I deleted the repository from the Application and tried to re create again.

       

      THanks,

      Asanka.

       

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Asanka,

      does your user have sufficient permissions to e.g. also write on the file system? You could check for details in here: https://ga.support.sap.com/dtp/viewer/index.html#/tree/2504/actions/34024:45389:45391:46723

      Kind regards

      karin

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      thanks Karin, I checked I have authorization. now the repository is created. yet the clone repository button is deactivated. how do I clone my repository.

      Thanks,

      Asanka.

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Asanka,

      is the status of your repository now 'created'?  What do you mean that the button is deactivated?  Does anything happen when you click on the button? Any error message?

      Did you already store credentials for your user?  Depending on the Git provider and -version that you are using, it can be that anonymous access is not supported.

      Did you take a look into the health check? Is the connection to Git green? Health check is explained in here: https://help.sap.com/viewer/4a368c163b08418890a406d413933ba7/202110.000/en-US/dda82c58029d43bf946e0290844fc938.html

      If not: did you provide the certificates to ABAP and Java? (explained in here: https://ga.support.sap.com/dtp/viewer/index.html#/tree/2504/actions/34024:47832:47061:47062:43841)

       

      Kind regards

      karin

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Hi Karin,

      Yes the status of the repository is 'Created'. yet the clone repository button is disabled.

       

      i got below error from TMS alert.

      Error: 'The specified directory '/usr/sap/SH1/D00/gcts/asankadl-gctsr/data/' is not a working directory of a version control system'

      POSIX_CLOCK: ERROR in get_posix_nanoseconds() !!!!! (ret = -1)      

      Health check shows a green arrow for connection to Git and also provided the certificates to ABAP and Java.

      Thanks,

      Asanka.

       

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Asanka,

      I am not sure what exactly happened in your case, but some guesses: the behavior of your system and the message suggest, that your repository had once been cloned successfully - this is what gCTS assumes. Did you - after a first try to clone - maybe change the gCTS-directory (either via the enablement wizard or by changing the parameter VCS_PATH in the gCTS app) or delete the repository directly on the operating system, not in the gCTS app?

      Kind regards
      Karin

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Hi Karin,

      sorry for the delay. I have recreated the GIT repository. I get the below error

      '[ERROR] Updating remote references along with associated objects failed: https://github.com/AsankaDL/gctsR: not authorized' 

       

      What should I do for this ?

       

      Thanks,

      Asanka.

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Asanka,

      this looks like the permissions on GitHub do not fit.

      Did you follow what is described in here. https://help.sap.com/viewer/4a368c163b08418890a406d413933ba7/202110.000/en-US/3431ebd6fbf241778cd60587e7b5dc3e.html

      Please also note that GitHub doesn't support account passwords any more. You need to use tokens: https://github.blog/changelog/2021-08-12-git-password-authentication-is-shutting-down/

      Kind regards

      Karin

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Hi Karin

      when I tried to save my credentials ,

      Credential Store of ABAP User ALIYANAGE

      Credentials valid for user AsankaDL
      After I hit the save button,

      Credential Store of ABAP User ALIYANAGE

      Credentials could not be validated.
      is there any reason for this behaviour?
      Thanks,
      Asanka.
      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Asanka,

      which release are you using? Could you please check whether this Guided Answer helps? https://ga.support.sap.com/dtp/viewer/index.html#/tree/2504/actions/34024:47832:42026:42027:43935

      If it fits for your release, we have also re-worked the credentials store to simplify usage. https://launchpad.support.sap.com/#/notes/3108593

      Did you enter the token before hitting 'Save'. The token is only kept once for saving. If you open your data again and click save again, it tries to save the new (now most probably empty) token

      Hope this helps

      Kind regards

      Karin

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      HI Karin,

      Thanks for the links.

      Since we are on HANA 2021 we cannot apply the note '3030266' to fix the credential store issues. still it doesn't allow me to save the Token.

      Is there another way I can get pass this road block.

      Thank you!

      Asanka.

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Asanka,

       

      does anything provided in this GA help? https://ga.support.sap.com/dtp/viewer/index.html#/tree/2504/actions/34024:45389:45390:43935

      Did you check the central SAP Note on gCTS and apply the required SAP Notes for 2021 (https://launchpad.support.sap.com/#/notes/2821718) Especially, did you apply this SAP  Note https://launchpad.support.sap.com/#/notes/3107363

      If all of this doesn't, could you maybe sent a screenshot of the screen where you add the credentials?

       

      Kind regards

      karin

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Hi Karin,

      Thank you for the links provided.

      we can't apply the note 2821718. we are on Basis 701. Is there a way that we could have a screen sharing session? I can work on the monetary requirements if that is required.

       

      Thanks,

      Asanka.

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Asanke,

       

      Note  2821718 cannot be applied directly itself. It is the central note for gCTS. Please check for the notes that aplly for your release and implement those notes.

      What do you mean by 'we are on Basis 701'? This release does not support gCTS at all. You need basis 7.54 (so S/4HANA 1909) at least. Before, you said that you are on 2021.

       

      Kind regards

      Karin

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      thanks Karin.

      SAP Basis 756 mistakenly types as 701.

      I will import the appropriate notes and let you know.

      Thank you for the help.

      Asanka.

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Hi Karin,

      Is there a way that we could have a screen share session?

      Thanks a lot.

      Asanka.

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Asanka,

      I would suggest that you open an incident for SAP support. With this, you could then open connections and my colleagues from support can investigate on your system what is going wrong. Please describe in the incident what you already tried and please refer to the conversation that we had in here. This is the official way how support on customer systems should be done in a secure way.

      Thanks for your understanding

      kind regards
      karin

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Thanks Karin I will do that!

      Asanka.

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      my git repository is 'https://github.com/AsankaDL/gctsR'

      user name is AsankaDL.

      my ABAP user name is ALIYANAGE.

      what should I give as my API end point https://Api.github.com or 'https://github.com/AsankaDL/gctsR'?

       

      Thanks,

      Asanka.

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Asanka,

       

      the API-endpoint is neither user nor repository specific.

      The API-endpoint for GitHub is https://api.github.com/ (with the '/' in the end). You can find more information on user-specific authentication with gCTS in here: https://help.sap.com/viewer/4a368c163b08418890a406d413933ba7/202110.001/en-US/3431ebd6fbf241778cd60587e7b5dc3e.html

      Kind regards

      Karin

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      hi Karin,

      I have stored the credentials in the gCTS APP with a Token successfully.

      Yet it gives me an error

      [ERROR] Updating remote references along with associated objects failed: https://github.com/AsankaDL/gctsR: Authentication is required but no CredentialsProvider has been registered
      I don't know what's missing here. I have given the API endpoint as https://API.github.com/
      and saved the token.
      I am confused here.
      Thanks,
      Asanka.
      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Asanka,

      what do you see, when you look into the details for your credentials? Is the GitHub user displayed? This is the indicator whether the credentials are valid on GitHub side. The error message means that the credentials are somehow not valid

      Did you implement SAP Note 3129344 - gCTS - Authentication handling fix for SAP S/4HANA 2021 FPS00 and 01?

      Kind regards

      Karin

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Thank you Karin.

      It's all good now. everything works fine. the reason was the CLIENT_VCS_CONNTYPE parameter set to HTTPS instead of ssl.

      Again thank you so much for your support without which I would have never been able to fix those issues.

      Regards,

      Asanka.

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Hi Karin,

      I have noticed that releasing. the transport doesn't automatically commit to the repo. I have to manually push the object using object push. Have I missed something in config?

       

      THanks,

      Asanka.

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Asanka,

      could you please check whther this GA helps? https://ga.support.sap.com/dtp/viewer/index.html#/tree/2504/actions/34024:45389:45390:39420

      Kind regards

      Karin

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Hi Karin.

      I created the user gctsobserver in SAP system and in gCTS app I have initialized the repository. Itr has successfully created the observer job. Also I have added gctsobserver as a Collaborator in my git repository.

      Now when I release a transport It doesn't commit yet. When I try to push the transport manually it gives me a message 'This is tp version 381.385.88 (release 785, unicode enabled) ERROR: Options 'CLIENT' and 'CLIRES' may never be specified together'

      Please help me in figuring this out.

      Thanks,

      Asanka.

      Author's profile photo Ulrich Auer
      Ulrich Auer

      Hello Asanka,

      this issue is probably caused by a certain combination of transport parameters. Please post a screenshot of the current transport profile parameter settings of the virtual system that you are using to address the repository.

      Use transaction STMS -> system overview -> choose virtual system -> transport tool

      best regards, Uli

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Thanks Uli.

      I have watched the open SAP (gcts) course videos and fixed the issue. It's all good now gCTS process works well.

      Cheers,

      Asanka.

      Author's profile photo Ajay Gupta
      Ajay Gupta

      Hello All,
      Any idea, if we can use gCTS for Portal Launchpad Sites which are completely deployed on BTP.
      If yes, is there any documentation available for it.

      Thanks,
      Ajay

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Ajay,

      this blog post deals with gCTS in on-premise ABAP systems. To my knowledge, Launchpad sites are not ABAP coding and cannot be integrated in GIt (if this is the goal) by the help of gCTS.

      Kind regards

      Karin

      Author's profile photo Fabian De Greef
      Fabian De Greef

      Dear gCTS community

      I am trying to set up gCTS as a test case for the company.

      We first started with our system on version S/4 Hana 2020 FPS 02. Configuration, gCTS setup, first repository and first manual vSID.

      Our testing system is now running version S/4 Hana 2021 FPS 01 with the latest implemented note 3129344. There were some problems connecting to the Azure Devops Repo we are using on premise that are now fixed with this version and the new released note.

      I am now able to automatically push changes to our Azure Devops repo's with gCTS after successfully release of a task and transport.

      The only problem we are facing now is when you checkout an earlier commit from the commits table. This action fails because of an exception see attachment, the latest commit remains active. Tested this on the Open SAP gCTS course exercise and no problems there.

      Could it be an issue, the virtual system was created during the old system version and now after upgrade we are reusing this?

      And as I may ask two extra questions about those vSID's

      1)  Is it the intention to create a new virtual system every time you'll start with a new development project ? After some testing it seems old objects are some time commited when retesting with the same vSID (old commit's are also sometimes visible again even when creating a new repo and deleting all packages and objects)

      - Reflected at a company with around 60 developers doing all kinds of individual workbench and customizing projects, what is the best approach to manage the vSIDs for every single developer ?
      The Open SAP gCTS course uses predefined codes based on our userId's

       

      Trigger%20old%20commit

      Trigger old commit

      Checkout%20Error

      Checkout Error

      Error%20Log%20Checkout%20older%20commits

      Error Log Checkout older commits

       

       

      Kind Regards
      Fabian De Greef

      Author's profile photo Ulrich Auer
      Ulrich Auer

      Hello Fabian,

      >>> This action fails because of an exception see attachment, the latest commit remains active.

      The screenshot shows that you are suffering from a bug in the transport program R3trans which was detected and resolved only recently. So please update the transport program R3trans to the latest version from the SAP service marketplace. We described the issue and the solution in note 3154061.

      >>>  Is it the intention to create a new virtual system every time you'll start with a new development project ? 

      No, we assume that vSID are stable, because they relate to transport routes, which are pointing to git repositories. Furthermore, in the course we explain how the gCTS registry will help you to get rid of transport layers at all, then you would need only one virtual system.

       

      Best regards, Uli

      Author's profile photo Fabian De Greef
      Fabian De Greef

       

      Hi Ulrich

      Thanks for your answer, implementing the new note did indeed fix this bug.

      We decided to set up our second system to test some more with gCTS (like a DEV en TST landscape scenario ) But we are now facing a new problem since the S/4 Hana 2021 FPS 01 version.

      In my previous post I explained we did our first initial setup of gCTS on version S/4 Hana 2020 FPS 02. The gCTS setup wizard did the job. When we now run on this same patched system S/4 Hana 2021 FPS 01 and our new (TST) system which was already patched to S/4 Hana 2021 FPS 01 without pre configuration of gCTS the gCTS wizard no longer seems to work when pressing the (setup gCTS)  button from within the app. This seems to be happen when running the setup (can't continue from step 1 because of the error and when running the system status check gives the same error )

      Gateway endpoint /sap/opu/odata/SAP/SCTS_GCTS_SRV/SystemValidate is throwing an exception.

      We are running both systems with kernel version 785 SP-level 100.

      I attached some pictures regarding the exception

      Kind regards

      Fabian De Greef

      System%20Check%20Error

      System Check Error

       

      Gateway%20Error%20SCTS_GCTS_SRV/SystemValidate

      Gateway Error SCTS_GCTS_SRV/SystemValidate

       

       

      UPDATE:

      The Exception seems to be occur when system status is checking for outgoing github connectivity. We are using our own internal git server (Azure Repo's) and cannot use Github for the company, all outgoing traffic needs to pass by our Proxy.In this case it will be forced to use github during initial setup and check (which was not the case in the S/4 Hana 2020 FPS 02 gCTS version). Is there an option to turn off github check functionality or can somehow ensure that the traffic can be redirected through our proxy

       

      Author's profile photo Fabian De Greef
      Fabian De Greef

      The problem was solved with the recently released SAP note 3170636

      Kind regards

      Fabian De Greef

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Hi Ulrich,

      when gCTS app pushes changes from DEV to TST system is it using TOC concept? can you please give me some insight to that methodology?

       

      Thanks,

      ASanka.

       

      Author's profile photo Ulrich Auer
      Ulrich Auer

      Hello Asanka,

      yes: internally gCTS creates "transports of copies" in order to pull the objects from the git repository to the abap system, thus leveraging all capabilities of the transport tools like activation of data dictionary objects, execution of after import methods and so on.

      Are you taking part in the openSAP couse? There's a post where some more details about this "ToC" are explained ...

      best regards, Uli

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Thanks Uli,

      Thank you! Yes I do take part in openSAP course please let me know which post contains those details.

      Thank you.

      Asanka.

       

      Author's profile photo Ulrich Auer
      Ulrich Auer

      https://open.sap.com/courses/gcts1/question/10478450-974d-4d8b-98c3-a46df5bcdc5d

      Author's profile photo Asanka Liyanage
      Asanka Liyanage

      Thank you Uli!!

      Author's profile photo iMRO DEV TEAM
      iMRO DEV TEAM

      Hi Karin , 

      We have set up the gcts application in our SAP S/4 HANA 2021 systems. After maintaining the credentials we are now trying to create a repository . Post entering the values for URL,Description,VSID, Role,Type & Visibility , when Save is clicked , the error comes as '[GCTS.API.703] Could not create repository 'uditas10-workbench'. (Screenshot attached)

      To further investigate the issue we checked the STSM t code on S/4 HANA system.It gives the below error 'POSIX_CLOCK: ERROR in get_posix_nanoseconds() !!!!! (ret = -1) '.(Screenshot attached).

       

       

      Thanks ,

      Udita Saklani

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi,

      Is the system on which you are trying to create the repository, a domain controller?
      If yes: could you please check whether the system with the System-ID of your vSID that you chose for the repository has been created in STMS? And if it is available, could you please check that the parameter NON_ABAP_SYSTEM is set to VCS?

      If the system is not the domain controller, did you create the system with the ID of the desired vSID as non-ABAP system on the Domain controller and distribute it?

       

      Kind regards
      Karin

      Author's profile photo Udita Saklani
      Udita Saklani

      Hi Karin ,  ,

      In response to the solution you provided above :

      Is the system on which you are trying to create the repository, a domain controller?                 -   Yes it is a domain controller.

      If yes: could you please check whether the system with the System-ID of your vSID that you chose for the repository has been created in STMS?   - The system got created  and is visible under t- code STMS as shown in screenshot 1 . It is of type 'Non- ABAP system '

      And if it is available, could you please check that the parameter NON_ABAP_SYSTEM is set to VCS?                                                         - Since now both systems are visible, which one needs to be used for Repository Creation? We tried using both , and none of them is leading to repository creation and still gives an error as shown in screenshot2.

       

      Thanks,

      Udita Saklani

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi,

      UDI needs to be used as vSID when you create the repository. Could you please add a screenshot from STSM -> UDI -> Transport Tools so that I can see the parameters?

      Kind regards

      Karin

      Author's profile photo Udita Saklani
      Udita Saklani

      hi Karin ,  ,

       

      Please find attached screenshot .

       

      Thanks,

      Udita Saklani

      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Udita,

      the JAVAPATH looks a bit uncommon... Could you please check the documentation in here https://help.sap.com/docs/ABAP_PLATFORM_2021/4a368c163b08418890a406d413933ba7/e7a002e42d8544ae975c53bd112eb2f8.html

      Please check where Java is installed on your ABAP system and set the path accordingly

       

      Kind regards
      Karin

      Author's profile photo Udita Saklani
      Udita Saklani

      Hi Karin , ,

      We have did all the required configuration on the system. When we performed the health check, it gives us two warnings as highlighted in screenshot.
      We have set up the below paths :

      Path to gCTS working directory (VCS_PATH): /usr/sap/V1R/D01/gcts
      Path to Java runtime (JAVA_RUNTIME):  /usr/sap/V1R/SYS/exe/sapjvm_8/bin
      Path to Git client (A2G_RUNTIME): /usr/sap/V1R/SYS/exe/run/abap2vcs.jar

      Can you please let us know what is missing over here , as it looks like this is blocking the 'Creation Of Repositories' in the gCTS app.

      Thanks ,

      Udita Saklani
      Author's profile photo Karin Spiegel
      Karin Spiegel
      Blog Post Author

      Hi Udita,

       

      the Path to Java Runtime still looks not ok. It cannot end with bin,

      Please refer to what is written in the documentation:

       Enter the path to the Java executable of the Java runtime. For ABAP systems on Unix platforms, the path must end with java. For ABAP systems on Windows platforms, the path must end with java.exe.

      Example: /usr/sap/<SID>/SYS/exe/run/jre/bin/java

       

      Kind regards
      Karin