Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Karin
Product and Topic Expert
Product and Topic Expert
772

You might already have heard about the Git-enabled Change and Transport System or gCTS in short. And if you found the idea somehow interesting, you might have wondered how to get started.

Well, the easiest thing is (after you configured gCTS) to start from scratch with a new ABAP package as a playground and / or new customizing, use the correct transport layer and see what happens on Git and how your packages and objects reach Git and from there the target systems – so that’s it. Go ahead.

But is that all? If you decide, maybe after a trial with a new package, that you like to use gCTS for more, you might want to migrate your existing packages that you currently handle with CTS to gCTS and use gCTS for your customizing changes, as well. This requires some additional effort and planning…

You can switch to gCTS for all your development and customizing at once. But there is no need to migrate everything at once. If you prefer a phased approach, you can migrate one development project (or package) after the other. gCTS and CTS can be used in parallel in one system This would allow you to take the time that you need to get familiar with the migration processes. Details what has to be done are described later in this blog post Once you decided to switch to gCTS for a certain package, you should not switch back to CTS again. At least, you should not switch from one to the other and back again several times. If in the end you come to the conclusion that you don’t want to continue with gCTS, you can of course switch back to CTS.

You can in principle switch the development of an application to gCTS instead of using CTS whenever you like. Some steps are required to migrate to gCTS that would interrupt the development process a bit. Therefore, please plan carefully when would be a suitable time to do the migration. The following list gives an idea about the required tasks and steps. It is sorted in the order things have to be done. So, start your migration project on top of the list and finish it with the last point. But read the whole list before you start 😉 and create a project plan in case you migrate bigger development projects.

  •  Configure gCTS in all systems of your landscape in general and prepare the required repositories – both on Git and connect them to your systems. Create separate repositories for workbench and customizing objects.
  •  Decide whether you would like to use the Registry. We recommend using the registry if your systems are on SAP S/4HANA 2020 FPS2 or higher. Especially if you use gCTS for Customizing, you should make use of the Registry as this saves you from adding the correct target system to the customizing request. You can find more information about the registry at gCTS Registry on the SAP Help Portal. A blog post describes what you have to do to integrate the registry into your development process: Integrating gCTS with Transport Organizer processes.
  •  Inform your developers and make sure that no development is done in the respective packages while you work on the following steps.
  •  Release all open transport requests that contain objects that shall be migrated to gCTS, and transport them through the complete landscape using CTS (so the ‘old’ way of transporting)
  • Pre-fill your repository with the complete packages– you can use already released transport requests or the packages to do so. You don't need to collect all objects in a new transport request. It is required that a repository contains the package and all its objects. Partial objects are not sufficient. On the SAP Help Portal at Manually Push Objects you can find details on how to fill the repositories.
  • If you decide against using the Registry: Change the transport layer of the packages that shall make use of gCTS. Editing Transport Attributes of Packages on the SAP Help Portal describes how this can be done
  • Clone the completely filled repository to all systems before you start developing any new objects. Do not just clone it to development and then develop and only later clone it to the other systems of your landscape. See also the section ‘Caution’ below this list.
  • If you would like to make use of the Registry: Register the repositories and all objects in the registry. Register also the customizing tables.
  • Make sure that all developers have the right roles assigned to be able to work with gCTS. Authorization Concept in gCTS explains the details. Make sure that they have a user on your Git-provider. Give them access to the respective repositories by making them collaborators on the Git side and in the ABAP systems. For this, you can use the option to synchronize collaborators starting with SAP S/4HANA 2023. Details are provided on the SAP Help Portal at Use the Collaboration Tab of a Repository.
  • Inform your developers that they can start developing in the respective package again. Let them know that from now on a commit in Git will be created when the release a transport request (or when they release a task if you decided to implement that: Integrating gCTS with Transport Organizer processes  ). Tell them to maintain their credentials in the gCTS App.

Caution: gCTS can only delete objects that also reached the system via gCTS. If an object was already in the system before you used gCTS, then you delete it as part of a commit and then do other things in your repository that create new commits, the object cannot be deleted on other systems when you clone the repository. Similar behavior applies if you work on one system and switch to previous commits: objects that were not part of a previous commit but were deleted as part of a later commit cannot be restored when you switch to the earlier commit. This is the normal behavior of Git.

The best point in time to migrate a development project to gCTS is maybe when you have just finished and published a new release. Hopefully, this would be the point in time when all systems in your landscape are using the same software version. If this point in time doesn't exist in your development process, you have to carefully fill the repositories with the initial content: what is the version used in the production system should become the content of the main branch – and maybe also of the release branch if you decided to use one. If your development system is ahead of the main branch's content, then you could use the transport requests that had been created since the last release to push the respective object versions to the feature branch of your repository. Make sure that the required branch is the active one in the respective systems.

6 Comments
sunil_sap18
Explorer
0 Kudos

Hi Karin,

Thanks for the above post which helped me. I have a question. You mentioned this  : "If in the end you come to the conclusion that you don’t want to continue with gCTS, you can of course switch back to CTS."

Can you please let me know how to Switch back to CTS from gCTS? We are on S4 HANA 2023 initial shipment pack. I have migrated a Z package from CTS to GCTS using objects tab(push objects option) of gcts fiori app. And now we wanted to switch back the same package to CTS.

Can you please help?

Regards,

Sunil

 

 

0 Kudos

hi Karin, 

I was going thru this openSAP_gcts1_Week_1_All_Slides and on slide 10, I noticed: "Planned use case: distributed development Two development teams can work on the same object" 

If we have an on-premise S4 HANA system 2022 with FP / SP 02 (05/2023) FPS, does this mean that two developers will be able to edit the same object at the same time and then merge the changes? We do not wish to have both CTS and gCTS switched on in the same on-premise system please note. 

Thank You,

Joe Valliparampil. 

 

 

Karin
Product and Topic Expert
Product and Topic Expert

Hi Joe,

the paradigm of the ABAP server that there can only be one active version of an object in a system at a time, remains also with gCTS - and this includes that you can only work on that one version. There is no way to allow two developers to work on different versions in the same system. The idea of the distributed development is that you have two development systems in place which are connected to the same repository. Then, each developer can work on the object in 'his' system. When he releases a transport request, he would not be able to push directly but instead would need to solve conflicts first - if the developer on the other system had pushed a newer version in the meantime which was not available in the second development system.

This option requires some special configuration for the repository once when you decide to work in a distributed environment.

You can find that described in here: https://community.sap.com/t5/technology-blogs-by-sap/conflict-resolution-with-gcts/ba-p/13498919

Hope this helps
Kind regards
Karin

Karin
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Sunil,

sorry, I have missed your question before...

the steps back are somehow the revers-order:

  • stop all development on the object
  • release all open transport requests where the object is part of
  • Make sure that the latest commit is aktive in your system
  • Change the transport layer of the object

The versions of the object that you created while using gCTS will remain part of the repository (if you don't delete it). And in the development system, you do also have for sure all transport requests that where created when you developed using gCTS. In target systems, you might not have all versions of the object that had been created while using gCTS if not every commit was imported. The transport requests in the target system do have a different naming - so you cannot find the imports of the respective object under the ID of the development system.

Hope this helps
Kind regards
Karin

0 Kudos

Thank You for the clarification, @Karin 

sunil_sap18
Explorer
0 Kudos

Thank you @Karin  for your reply