Blog

gCTS: Git-enabled Change and Transport System

gCTS is a way to store all versions of SAP ABAP development and Customizing objects while managing transport processes which uses Git as an external version management system to store ABAP files. The main concept is that objects can be moved to a Git repository and then they can be deployed to any environment, including a test environment, a production environment, or another development environment. Git keeps track of several versions of files that developers can access at any moment, contrast, update, and distribute any recorded version along with using the system as a backup in case of a system error.

How does Git-Based Software Distribution work?

In order to move ABAP development objects from one system to another Git can serve as the technical foundation. Once a repository is registered on the ABAP system, ABAP developers can use the Git server as cloud storage and clone the repository's content to their file system as usual. To make the objects available in other systems they should be pushed to a remote repository and pulled from those other systems.

ABAP Development Objects Transfer Process

How does continuous integration work?

Having continuous integration procedures for ABAP development is possible using gCTS. Continuous integration (CI) procedures support the management of code modifications made by many developers.

Changes become available for third parties after the developer pushes the code into a repository. Once the code is in the repository CI servers observe it and CI creates a new build. Later, the CI server deploys the build to the runtime system and tests the build, then feedback is sent from the CI server to the developer, and the continuous integration process is completed.

Flow of Continuous Integration

What is continuous deployment?

Continuous deployment (CD) is the process of automating the publication and deployment of software updates. So that when a code commit passes an automated testing phase, it is published into the production environment. Continuous Deployment ensures that every update that has gone through the production stages is available to the end-users.

ABAP Software Lifecycle Process

What is the process overview for gCTS?

Firstly on the ABAP system, a remote Git repository should be registered, this can be done with the SAP Fiori app for the gCTS app. Then the remote Git repository is copied to the file system of the ABAP system and a local repository is created. Afterward, the packages which the user wants to manage should be defined. The software development is performed in ABAP. Then the objects that have been changed and recorded in transport tasks can be pushed to the remote repository. gCTS clones the objects to the file system by default when a transport request is released from the ABAP system. When a transport request is released it is added to the gCTS queue as seen in Figure 5 which can be accessed in the ABAP system from transaction STMS and becomes available to be transported. The objects are also converted to file and folder structures which can be handled by Git repositories. Lastly, the target system can be updated by pulling requests or it can be done automatically with the usage of a CI/CD pipeline.

Transport Queue in ABAP System

What are the prerequisites for Git-Enabled Change and Transport System?

Firstly, SAP Fiori App for Git-Enabled Change and Transport System (gCTS app) and a Git platform to keep your repositories are needed. ABAP systems such as development, test, production systems, etc. are also a must to use gCTS. In ABAP systems at least SAP S/4HANA 1919 and for customization 2020 release should be running. Usage of a CI server is optional (ex. Jenkins), which allows you to use pipelines to automate the process.

For gCTS tasks, both developer users and ABAP users who conduct configuration tasks need the following authorization objects' permissions:

  • S_RFC
  • S_SERVICE
  • S_BTCH_ADM
  • S_BTCH_JOB
  • S_CTS_ADMI
  • S_CTS_SADM
  • S_DATASET
  • S_GCTS_REP
  • S_LOG_COM
  • S_TRANSPRT

Why should we use gCTS?

  • Decentralized development environment
  • Readable files being stored in repositories
  • Source code can be easily shared and accessed
  • In an unexpected situation source code can be backed up
  • Changes are tested automatically and stable ones are deployed
  • Instant feedback is given to the developers
  • Automatic pull of changes to a follow-on system
  • Complete support of Continuous Integration
  • Automatic continuous deployment
CI for ABAP

REFERENCES

  1. “Git-Enabled Change and Transport System.” help.sap.com, sap, 2021, https://help.sap.com/docs/ABAP_PLATFORM_NEW/4a368c163b08418890a406d413933ba7/48c4300fca5d581ce10000000a42189c.html?locale=en-US.
  2. “LT110 - Include ABAP in DevOps: Get the Picture.” SAP, 8 April 2020, https://assets.dm.ux.sap.com/ru-eslc2020/pdfs/devops_for_abap.pdf. Accessed 6 July 2022.
  3. “About continuous deployment.” GitHub Docs, https://docs.github.com/en/actions/deployment/about-deployments/about-continuous-deployment. Accessed 6 July 2022.

Similar
Blog

Your mail has been sent successfully. You will be contacted as soon as possible.

Your message could not be delivered! Please try again later.