Skip to Content
Technical Articles

How to manage objects using gCTS

With launch of much awaited gCTS app in 2019 SAP has taken a step forward towards Continuous Integration. gCTS makes use of special Git features , changes in the objects are still recorded in Transport Requests . We can move the objects to remote Git repositories i.e. “Push Objects” either by releasing the Transport Request or while working on the objects.

Sounds quite easy right? Yes, it is, we will see how to use gCTS in this Blog.

Key Pre requisites for having gCTS app working are:

  • S/4HANA EM 1909 FPS00
  • JVM Version should be 1.8 or higher
  •  You have GitHub account ( in case your Enterprise has its own private GitHub , you can use the same too )
  •  gCTS app is activated and you have the required role assigned to your user as per Fiori Library

Let us see sequence of key steps that are required to push objects to remote Git repositories:

  1. Maintain Configuration : Before you create repository ; maintain the configurations
  • VCS_PATH  : It need to be set to proper directory path in order to clone repositories on OS      level. In case you do not provide any value for configuration parameter VCS_PATH, the application will not create any directory on OS level and expects that the directory already exists
  • A2G_RUNTIME: Communication application for remote repository on the OS layer
  • JAVA_RUNTIME: Path to the java environment on OS layer .

    2.  Create Repository:You need to register repository on ABAP system before you can push objects to Git repositories.

The creation part of a repository is just a registration process and the opportunity to provide further configuration before clone

You also need to maintain Configuration for Repository ( Configuration tab in repository) by maintaining below parameters before saving Repository .

Click on Save to create Repository.

  1. Initialize System : In case ABAP system is the domain controller, then choose initialize system on the main page of app. This schedules gCTS services and all the required settings for Transport Management System are done. The system will automatically create the non-ABAP system and a transport layer that will be used to transport objects that are part of packages managed by gCTS. The transport layer follows the naming convention Z+<vSID>

Now when you create objects that are required to be moved to Git Repository; assign Transport layer to objects as Zvsid (the one that was created above)

4. Clone Repository  :All update or change actions are disabled as long as the repository was not cloned.

The cloning process copies the file structure of the remote repository to the file system of your ABAP system and imports the content to the local repository on the file system. Note that this process may take some time, depending on the size of the repository

Once the Repository is created successfully, status will be changed from ‘CREATED’ to ‘READY’ at the top of Repository

Once the clone Repository is successful, Clone Repository button will be disabled. You can check the results of cloning process in Logs tab.

Now when the transport requests are released in then ABAP system; the objects will automatically be pushed to the remote repository on the Git Server.

5. Push Objects : You can also push objects manually; where the Transport request of objects are not released yet. Go to Objects tab in the repository and click on “+”

P.S:  + button is only enabled when your repository status is in ‘READY’.

Now enter the name of object /package that you would like to push manually and click on Push button as shown. It will automatically create Transport of copies having the object and will automatically release the TR in the backend

You can also use this app to import objects from Repository to your SAP S/4HANA system as well .

To summarize ; in this blog post we have seen how using gCTS app you can push the objects to Git repositories once the basic settings as mentioned above are in place .

Please share your thoughts and any additional points you think we can add .

Thank you!

7 Comments
You must be Logged on to comment or reply to a post.
  • Thanks Nabheet . Either you can pull manually in subsequent systems using gCTS app / we can build CI pipeline which can be used to trigger changes automatically example currently we have been using internal Devops platform for triggering automatic push into quality after validating changes by executing ATC and ABAP Unit .
    One of the use case currently we have is an existing customer who has 2 development boxes ; one for Master changes D1 and other for Project/Int bug fixes changes D2
    The Master branch contains all the user stories that have already been developed in DEV system
    The Release branch contains the code done in DEV1 system (Typically any roll out changes/Int bug fixes).
    The code from release branch is merged continuously into Master branch.The Merged code is pushed back to D1 system .So benefit typically depends on how Customers are executing their implementation projects and if they have scenarios where they would have multiple people working on same development as gCTS will give that flexibility by using branching and merging concept.

    • Thanks John .. Sorry for coming back late ; didn’t check earlier . .. Well I spare time to list down my learnings since in future if anyone else faces same issue it can help him 🙂

      We are building pipeline using Jenkins so may be after we are done I will share the experience on that as well in coming month.

  • Interesting blog, Taranamjit. Thanks for sharing.

    I’m having issues with configuring my first repo and suspect the vSID is not setup correctly.  Are able to add a screenshot of the STMS configuration that the ‘Initialise System’ step produces?

     

    Thanks

    Ian