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

 

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

    nice blog post!

    The following blog post may be interesting to understand the role of gCTS in the context of the SAP Cloud Platform ABAP Environment:

    https://blogs.sap.com/2019/11/13/software-lifecycle-management-for-sap-cloud-platform-abap-environment/

    Best regards,

    Thomas

     

     

  • 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

      • hi Karin,

         

        The link you have given above https://help.sap.com/viewer/4a368c163b08418890a406d413933ba7/201909.002/en-US/3c24c83b2c0a4eee83cac387f96905ee.html gives me a blank page when using the Chrome browser, on Microsoft Edge it works fine though.

         

        Thank You,

        Joe.

      • 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

             

          • Hi Karin,

             

            I'm a little  further in gCTS thanks for the information.

            As for Project Piper is there a way to incorporate it into Microsoft(TFS)?

            How would one use Project Piper to build pipelines on that platform?

            For example scenario of running a test case on TFS that fails and the pipeline would need to execute gctsRollback?

            Kind regards,

            Greg

             

          • Hi Greg,

            sorry, I am not an expert on how pipelines are to be build in Azure DevOps.

            In principle, gCTS steps should be agnostic to the pipeline tool. Some parameters are Jenkins-only. You can find that specified in the respective steps' documentation

            Maybe you could ask the question how to build a pipeline in Azur DevOps to the community (go for 'Answers -> Ask a question')

            And just FYI: We know that there is currently an issue with the deploy step in project 'Piper'. We plan to work on them and plan to publish re-worked steps.

            Kind regards
            karin

          • Hi Greg,

            just to add to what Karin said: There have been some efforts to connect project Piper with Azure DevOps, see these blog posts:

            https://blogs.sap.com/2019/10/24/how-to-use-project-piper-docker-images-for-cicd-with-azure-devops/

            https://blogs.sap.com/2019/11/06/project-piper-and-azure-devops-successful-collaboration-with-delaware/

            However, these examples are not referring to gCTS but to 'classical' web development. Still it might be worth asking a question in these blog posts...

            Kind regards
            Harald

             

          • Hi Karin,

            Thanks for the quick response. I'm not really having trouble AZURE DevOps pipeline process.

            I'm having trouble trying to find a process in SAP where I can call the Rollback on a Commit in the target QA system when encountering a SAST or ATC issue, something similar to how gctsRollback is described in the Project Piper documentation.

            I would think that process would eventually call some type API on the  target QA ABAP server in order to initiate  the Rollback.

            I guess I'm trying prevent the activate from occurring on the Commit on the target system or stopping the transport release from DEV system which I didn't think was possible asynchronously.

            Maybe there's something in the cyclic CTS job that runs on the target QA system?

            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

  • Hello Karin,

    There is a sudden issue happening with our GCTS. Issue is-> After TR release from Dev, we can see a new commit ID in Dev-GCTS app, also our code is pushing to Git. Secondly, the new commit is also available in Test-GCTS app also, but after pulling or updating it to latest commit, the code must come to local Test system, but unfortunately it is not reflecting in Test system and TRs are not importing from Git side. We checked the Health Check, and no errors are there now. Please suggest, how to proceed.

    • Hi Himanshu,

      did you check the 'logs'-tab in the gCTS app? (the Health Check is more for configuration and connection issues). Is there anything available in the import queue in transaction STMS of your target system? If yes: please check the import logs

      Kind regards

      Karin

      • Hi Karin,

        I checked the import Logs, but transports are not available in the Queue which we have pushed, this is strange. Also if we are checking Logs in GCTS, so the status is red and it is only stating->

        Finished after 1188 ms with RC 0
        I checked the, Logs in AL11>DIR_instance>gcts>repo>Logs, but there also the log is stating the same.
        We are following every option, given online, but still the Transports & Code are not getting pulled in Local system.
        • Hi Himanshu,

          so can you see an action PULL_BY_COMMIT ion the Logs-tab? Is this shown in red? What can you see if you click on the entry?

          Kind regards

          Karin

          • /
          • Hi Himanshu,

            I assume that this is what you can see when you choose the line for the transport tools, right? Could you please click on the small arrow  on the top left and select the entry below where the application is 'Client'?

            Thanks and kind regards

            karin

          • Hi,  yes you are right, it is for Transport tools.
            I am trying to open the other Tab for Client, but it is not opening. I only can open the Transport tools tab and not the other one.

            /
          • As they are both shown in green it is also quite unlikely that there is an error in the details. Is there any line on the actions tab that shows a red symbol in the end?

            To be honest, it is a bit hard to support this without any system access. I would suggest that you open an incident so that my colleagues from support could take a look

            Kind regards
            Karin

          • Hi Karin,

            Thanks for the suggestion, I have raised an incident,
            53071 / 2021 gCTS import issue.

            Awaiting a response from the support.

             

            Kind Regards

            Himanshu

  • Hi Karin,

    Good evening!

     

    I'm trying to implement the gCTS in S/4 HANA 1909 but facing some issues.

    I'm getting error in gctsDeploy.

    Error "hudson.AbortException: No such library resource metadata/gctsDeploy.yaml could be found"

     

    gCTSDeploy%20Error%20Log

    gCTSDeploy Error Log

     

    gCTSDeploy%20Pipeline

    gCTSDeploy Pipeline

     

    My Jenkinsfile file code below

    @Library('piper-lib-os') _

    node() {

    stage('Deploy') {
    gctsDeploy(
    script: this,
    host: 'https:<host>.com:<port>',
    client: '300',
    abapCredentialsId: 'ABAPUserPasswordCredentialsId',
    repository: 'DEV003',
    )
    }

    }

     

    My .pipeline/config.yaml code below

    general:

    stages:
    gctsDeploy:
    host: 'https:<host>.com:<port>'
    client: '300'
    abapCredentialsId: 'ABAPUserPasswordCredentialsId'
    repository: 'DEV003'

     

    Please can you provide some assistance on the same? Or provide you contact mail ID so that I can explain the end-to-end process offline.

    Thank you in advance.

     

     

    With Regards,

    Dinesh.

      •  

        Hi Karin,

        Good evening!

        Thank you for your reply. I'm also exploring other options from my end.

        I'm currently exploring the SAP for DevOps for our On-Premises system (1909 FS01), which I'm using different tools like Jekins and Azure. In Jenkins I required your support as some of the things are not working as expected.

        Would like to provide more details to you in 1-to-1 mail and discuss our approach.

        Please let me know how can I contact.

        Thank you in advance.

        With Regards,

        Dinesh.

  • Hi Dinesh,

    if things don't work as they should (or as documented), I would suggest that you open an incident. With this, my colleagues from support or development would have a chance to also look into your system to investigate in detail what goes wrong.

    Please check also SAP Note 2821718 in there, you can find the SAP Notes collected that are relevant for the different releases. Maybe that they already fix issues that you are facing.

    You might also find hints in our Guided Answer

    Thanks and kind regards
    Karin

  • Hi Karin Spiegel ,

     

    Thank you for sharing your expertise on gCTS. It is great to see and read what is now already possible.

    We are using a CI/CD Jenkins Pipeline on our HANA on premise and on our HANA cloud platform and we are really looking forward to transform our S/4HANA landscape. We are on 2020 release since this weekend, so gCTS can be a next step. But gCTS on BW would have a bigger advantage for us than S/4HANA. I noticed in the running OpenSAP course that BW/4HANA was mentioned on one of the slides but afterwards BW was nowhere mentioned.

    Looking to the SAP notes that you need to apply in S/4 system we have the impression that it could also work on BW. Do you have any insights if gCTS could work on BW already? Or do you have any insights on when this might be possible? And off course, when it is possible can you share this knowledge?

    Thanks in advance

     

    Kind Regards,

    JP Domen

  • Hello Karin,

    We are facing some, issues, and our basis team is also puzzled, maybe you can help here. We recently upgraded our 1909 systems to 2020, and again setup GCTS with them. Currently we are facing some issues.

    System 1->
    1. We are not able to see our commits, and every time, we are trying to click over any tab, one error      popup is coming- "Opening a file for output failed". We checked Health Check, and it is working          fine.

    2. Our "Update to Latest commit" button is also not helping us, in making our last commits visible.

    Is it something related to some OS level settings, which we are missing, or might be related to Gcts interface (fiori app).

    System 2->
    1. No Tab is working, even we can not click over Health check to see, the issues. After clicking we get, Random Error Popup, with no Error explanation written over it.

    • Hi Himanshu,

      did you upgrade to SAP S/4HANA 2020 including SP1 or did you use SP00?
      In any case: could you please check SAP Note 2821718 - Central Note for Git-enabled Change and Transport System (gCTS)

      There you can find Links to other SAP Notes that are required for SAP S/4HANA 2020. Could you please check whether they are implemented in your system?

      If the these SAP Notes are implemented or if implementing them doesn't help, could you please open an incident? Analyzing this issue without system access is a bit hard

      Thanks and kind regards

      karin

  • Hi,

     

    I am new to gCTS and wanted to know if gCTS is cross version compatible. We are using 2 dev environment with a version 1909 FPS01. Can we use a different version for our test environment?

     

    Regards,

    Vipul