Note
This lesson is geared mainly towards administrators, but any roles involved could benefit from it.
This lesson will help you explore the concepts and tools for DevOps in the SAP BTP ABAP Environment and understand the similarities and differences between DevOps with SAP BTP on other platforms.
This lesson is intended for customers who want to create side-by-side extensions in the SAP BTP ABAP Environment. For partners, SAP also offers other options; however, these are beyond the scope of this course. For more information, see the following:
Many of the principles of DevOps for SAP BTP ABAP Environment are similar to those of DevOps for SAP BTP in general.
Team members integrate their code frequently into a single main line
Before each integration, tools are available to verify changes through automated testing (compare with "Introducing Continuous Integration and Delivery (CI/CD)" lesson).
The recommended solution for automated transport management is the SAP Cloud Transport Management service (compare with the "Handling Delivery with Transports" lesson). SAP Cloud ALM, SAP BTP’s central operations platform, is also available for operations in the SAP BTP ABAP Environment. (compare with the "Observing Your Apps Running on SAP BTP" lesson).
However:
- In ABAP, you need an approach that combines the flexibility of Git with the well-established ABAP Change and Transport System (CTS).
- You cannot yet use SAP Continuous Integration and Delivery service with SAP BTP ABAP Environment (see the "Introducing SAP Continuous Integration and Delivery" lesson). You need to use a third-party continuous integration pipeline.
- For the SAP BTP ABAP Environment, we strongly recommend a five-system landscape rather than a three-system landscape. We will compare these two options later in this lesson.
The rest of this section will explore each main component in a typical development landscape.
Development Landscape: Main Components

The above graphic shows:
- A global SAP BTP account:
- With multiple systems
- With Git-based Change and Transport System
- abapGit, used to transport code to and from other systems (e.g., an SAP S/4HANA Cloud system)
- Continuous integration pipeline, based on Jenkins
- SAP Cloud Transport Management (cTMS)
- SAP operations services, such as SAP Cloud ALM or Change Request Management (ChaRM) in SAP Solution Manager 7.2
Global Account
Each ABAP system has its resources.
The above graphic depicts five systems in two separate codelines:
- DEV = develop features on the main branch
- TST = Quality Assurance/acceptance testing on the main branch
- COR = develop corrections on the release branch
- QAS = Quality Assurance/acceptance testing on the release branch
- PRD = Productive end use
Git-based Change and Transport System (gCTS)
gCTS enables you to manage your ABAP change and transport management processes using Git as a version management system. There are two options:
SAP-managed gCTS:
An internal Git client manages Git repositories at the operating system level. This arrangement is advantageous for ease of use: SAP, as the platform provider, is responsible for the repository, import queue, etc. However, the disadvantage is that you cannot directly access the Git repository.
For more information, see:
Software Component Lifecycle Management | SAP Help Portal
Bring your own Git:

Bring Your Own Git (BYOG) lets you connect your Git repositories. You can choose your own Git provider – including GitLab, GitHub, or Bitbucket – and more easily integrate your ABAP language Git repositories in your existing custom workflows and continuous integration pipeline(s). SAP ensures the consistency of imported commits.
However, the user cannot make code changes in their remote Git repository and import them into the local SAP BTP ABAP environment system instance, as this might violate any guidelines for ABAP cloud development.
For more information, see:
Software Components
In either SAP-Managed or ByoG, you interact with the repository using the Manage Software Components app to create or clone a repository, manage branches and tags, etc. Using Software Components, you transport ABAP development objects from one system to another. Each software component has a 1:1 relationship with one Git repository and with one transport layer.
This enables you to take advantage of both selected Git features and the ABAP Git-enabled Change and Transport System (gCTS).
- You start by creating a software component in the Manage Software Components app. Once you create and clone the software component, the ABAP System automatically creates a structure package.
- You develop in ABAP Development Tools in Eclipse (ADT).
- When you are finished developing, you release the transport request as usual. Once a transport is released, the objects are pushed into the associated Git repository. Using the Transport Organizer in the Eclipse-based ABAP development tools, you can create, manage, and release transport requests.
When creating each software component, structure it carefully:
- You cannot move development objects from one software component to another.
- The objects of one software component expose their functionality using released APIs. Therefore, to enable other software components to use your software component, set the API state to "Released."
- Software components cannot have cyclic dependencies. Instead, group basic re-use functions in a dedicated SW component.
For more information on the Manage Software Components app, see:
Manage Software Components | SAP Help Portal
For a detailed step-by-step-guide, see the tutorial:
abapGit
gCTS is used only for transports between systems within one SAP BTP global account.
abapGit is used for:
- On-premise to cloud code migration: see the tutorial Use abapGit to Transform ABAP Source Code to the Cloud and the blog post How to bring your ABAP custom code to SAP BTP ABAP Environment
- Cloud to on-premise transfer
- Exporting code when a system is decommissioned
- Cloud-to-cloud transfer – for example, to share code with others as open-source
- Implementing distributed development and testing mechanisms in dedicated development/test ABAP systems, such as proof of concepts or features that depend on regular development of a solution but run independently from its lifecycle.
Continuous integration pipeline
You cannot use the SAP BTP service SAP Continuous Integration and Delivery in conjunction with the SAP BTP ABAP Environment. Therefore, if you want to run continuous pipelines for your ABAP repositories, you need to set up your pipeline. For example, you may want to run automated ABAP Unit and ABAP Test Cockpit (ATC) checks.
To help you set this up, SAP offers Project Piper - pre-defined pipelines, stages, and steps that you can use, e.g., with a Jenkins server. These are open-source and based on SAP BTP ABAP Environment APIs.
A detailed description of this setup process is beyond the scope of this course. However, detailed information is available here:
SAP Cloud Transport Management Service
Like other development artifacts in SAP BTP, the ABAP artifacts in the development sub-account must be reliably controlled and brought to the test and productive sub-accounts. SAP's tool for this purpose is SAP Cloud Transport Management. For more information, see the "Reflecting Your Delivery Landscape in Transport Management" lesson.
SAP Operations and Orchestration services, such as SAP Cloud ALM and SAP Solution Manager 7.2
Again, ABAP artifacts are supported in SAP Cloud ALM and SAP Solution Manager 7.2. For general information on these services, see the "Observing Your Apps Running on SAP BTP" lesson.
We will discuss the use of SAP Cloud Transport Management in conjunction with Change Request Management in the final section of this unit, Use of SAP Cloud Transport Management with Change Request Management. Before we do that, we need to discuss another feature of the above landscape. By default, a development landscape is often depicted as having three systems: Development (DEV), Quality Assurance (QAS), and Production (PRD). However, in many cases, we recommend including two more: Corrections (COR) and Testing (TST). In the next section, we will explore these two alternative setups.
