Skip to Content
Product Information

gCTS is here

Do you know gCTS?

Maybe not – it is quite new.

Do you need gCTS?

Maybe – if your ABAP development processes should go for DevOps.

To solve the riddle: gCTS is short for Git-enabled Change and Transport System. The basic idea is that you can use Git to store your ABAP development objects.

The developers continue working in the ABAP workbench (SE80) or in ABAP development tools (ADT). They continue recording their changes in tasks. They continue releasing tasks and transport requests.

But: releasing the transport request does no longer mean that the transport request is added to the import queues of the follow-on systems of your system landscape. Releasing the transport request means that a commit is created in Git. The objects that were changed are added as files to a Git repository.

You can connect other ABAP runtimes to this repository. You can then choose from the commits to pull one or the other into this ABAP system.

You can set up a continuous integration process for your ABAP development.

gCTS still has a way to go until it can fully support DevOps or distributed development. But the basics are there. You can try them out for a simple ABAP package if you like – no need to immediately switch your whole ABAP development department to gCTS.

Interested in more?

To learn what is available right now in S/4HANA 1909, you can read the documentation on the SAP Help Portal: Git-enabled Change and Transport System

To get the full picture of what is planned, read our statement of direction Continuous integration in an ABAP environment

Or if you prefer a recorded session from SAP TechEd Las Vegas 2019: LT110 – Include ABAP in DevOps: Get the Picture

 

/
24 Comments
You must be Logged on to comment or reply to a post.
  • Hi Karin,

    great blog post! I really like the possibilities gCTS brings with it and the way described in the statement of direction sounds great.

    But I don’t think we should say gCTS enables DevOps. gCTS makes it easier to set up your development process as you do it with other technology stacks and enable CI/CD. But DevOps is much more. It’s not only about CI/CD, monitoring, automated testing and other technical aspects. It’s at least for the same amount a cultural topic and a big change for all SAP development departments at customers I’ve seen.

    Cheers,

    Martin

  • Hi Karin,

    that’s great news! Looking forward working with it.

    I’ve got one question:
    In ABAP-Git the serialization of table records is usually not supported (only via plugins or using the detour via BC-Sets). What is the technique used in gCTS? BC-Sets tend to be a bit slow when containing too many records.

    Regards,

    Thorsten

  • Hi Thorsten,

    currently, gCTS does not support customizing. Anything that can be part of a Workbench request can be handeled via gCTS – even TABU entries. This with the exception that deletion ob TABUs are not supported and that there is no specific client handling. Which means that the source client will always be the target client. You can check note 288887 for details.

    Hope this helps
    Kind regards
    karin

    • Hi Karin,

       

      Are there any plans to bring gCTS to the SAP Netweaver versions that still support the SAP Business Suite (ECC 6)?

       

      Kind regards,

      Rammutla

      • Hi Rammutla,

         

        there are no plans to downport gCTS to anything below SAP S/4HANA 1909. This is due to technical reasons as it is simply not possible to make gCTS work in the way it does on previous releases and due to the fact that new features are published in new releases.

        If you need to be able to work with gCTS in older releases, please let me know via mail naming the customer (if he allows) and the business reason. We collect these requirements and if there is a big need for this, we can think about options how it might be possible to allow at least an integration with gCTS to some extend.

        Thanks and kind regards

        Karin

  • Karin,

    Can gCTS  run in parallel with the normal transport management processes for the QA and PRD environments. For example,  exporting code to an external repo for running SAST but at the same maintaining the current transport process?

    If so,  any documentation for Basis support team. Trying to engage this concept in a phased approach.

    Thanks,

    Greg

     

     

    • Hi Greg,

      you define on development package level whether the respective objects shall be pushed to a Git Repository when the transport request is released. The mechanism works via the transport layer. Maybe that this page on the SAP Help Portal is a starting point: https://help.sap.com/viewer/4a368c163b08418890a406d413933ba7/201909.002/en-US/3c24c83b2c0a4eee83cac387f96905ee.html

      So yes, you can use gCTS and classical CTS in parallel – and for now, you have to as gCTS does not support transport of customizing, yet.

      Hope this helps – let me know if not

      Thanks and kind regards
      Karin

      • Thanks Karin.

        Another question.

        I’m trying to configure the Fiori tile  but I don’t have path ‘/sap/bc/ui5_ui5/sap/gcts’ in SICF as described in catalog SAP_BASIS_TCR_T.

        on my system  1909 FPS01 SP01  , the tile itself has ‘error’ displayed on it the lower left  with … on the right.  The application appears opens to ‘/sap/bc/ui5_ui5/bc_cts_git’. Is this a problem with a missing program or catalog?

        Somewhere a redirection to UI5 app ‘bc_cts_git’ is occurring.

        Thanks,

        Greg

         

        • Hi Greg,

          The error message shown on the tile only indicates that the tile cannot count the number of repositories – this is something that we can only fix in the next release. The workaround to get rid of the error message would be to create a new, static tile. Details on what has to be done are provided in SAP Note 2955781

          But this error message doesn’t mean that you cannot use gCTS. You should anyhow be able to open the gCTS SAP Fiori App by clicking on the tile. Does this work for you?

          Kind regards

          Karin

          • Thanks a million for the OSS Note.

            So  /sap/bc/ui5_ui5/sap/gcts   is ignored? I don’t see it anymore in  SICF,  is there an OSS Note for SAP_BASIS_TCR_T?

            I can’t seem to find how or where bc_cts_git is being called. Trying to understand how its all tied together.

            The SAP Fiori Apps library is pointing to /sap/bc/ui5_ui5/sap/gcts..

             

            Regards,

             

            Greg

          • Hi Greg,

            in SAP S/4HANA 1909, the REST Service /sap/bc/cts_abapvcs is used. We plan to continue with an ODATA -service for SAP Fiori applications in the next release

            Kind regards

            Karin

          • Once again thanks a million!

            I’m a bit further along, I’m investigating a pre-release gate in the CI pipeline, any information on the topic would be appreciated.

            Regards,

            Greg

             

  • Excellent Blog Karin! 🙂

    Just one question regarding the integration of UI5 Development (WebIDE) with gCTS:

    Are there any plans to integrate the WebIDE ABAP-Deployment Process with gCTS in order to enable a direct deployment to Test and Prod from a SCP Git Repositiory?

    Background of my question is: we’re currently developing Fiori-Apps on WebIDE (SCP) and deploy to our ABAP dev Backend as BSP subsequently (all our UI5 sources are located on the SCP Git Service). Afterwards, the entire BSP is transported to Test and Prod via CTS. The problem is, that in case of hot fixes (we have a separate branch for this) we have to “overwrite” the actual development version of our app, because we need to deploy and transport the entire fixed production version from dev to prod and “overwrite” our current development version on the ABAP-Backend! 🙁

    As workaround we need to redeploy the dev/feature branch to ABAP dev backend, which is very error-prone and annoying 🙁

    Would be great to have a way to deploy hot-fixes directly to Test/Prod Backend 🙂

    I hope this was not too confusing and I would be very grateful for any kind of help 🙂

    br

    Thorsten

    • Hi Thorsten,

      Thanks 🙂

      Concerning your scenario: do you have the option to use a CI server – so to set up a pipeline?

      If so, a hotfix-pipeline might be a solution. This pipeline could be set up in a way that it directly adds the hotfix to a transport request in the test system.

      Do you know Project ‘Piper’? There is a step available that supports this – currently via RFC only

      Hope this helps

      Kind regards

      Karin

  • Hi Karin,

    I have tried gCTS but facing issue while pushing the object to GitHub. After release for TR, i am able to see the object in gCTS Fiori app but when i select the object manually and push the same to GitHub, it fails.
    Checked the logs on gCTS Fiori app and it just says RC 8.

    Please suggest.

    • Hi Pooja,

      Do you have SAP S/4 HANA1909 SP2 available on your system? If so, you could implement some notes that would bring the Health Check to your system. With this little addition to the gCTS App, you can check, whether all your gCTS configuration works fine. In you case especially, I would check whether your ABAP system is allowed to connect to GitHub – so can access pages on the internet.

      Details about the SAP Notes required for the Health Check are available in here: https://launchpad.support.sap.com/#/notes/2821718

      For more detailed logs, you could also check transaction AL11: open DIR_INSTANCE, go to folder gcts/your_repository/log

      If you release a transport request, this includes adding it to the local repository and to the remote repository on GitHub – no manual push is required.

      Hope this helps
      Kind regards
      Karin

  • Hi Karin,

    great fan of the idea to bring some Git into the our ABAP world – excited to see this journey evolve.

    I’m currently trying to set this up in our test system (S/4 1909FP2). However, we have a dedicated Fiori Frontend Server (on an “old” NW 7.52 with the 1909 UI components) and I’m struggling to piece this together.

    From what I can see, one of the required services has been created on the front-end box, the other one on our actual S/4 system. How do I tell the Fiori app not to look at it’s own server or forward the call to the actual S/4 backend?

    I am struggling to find any documentation that explains how this is supposed to be set up. All documentation seems to assume the App and the Backend are the same system but nowhere is it called out that our setup doesn’t work. Maybe I’m just doing doing it horribly wrong? 🙂

    If you have a comment that would point me in the right direction – that would be much appreciated!

    Cheers,

    Christoph