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

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

 
58 Comments
taryckbensaili
Participant
0 Kudos
Hi Karin,

 

I'm not sure to understand what does gCTS provide for customizing and what is does not provide.

Does each transport entries for customizing like TABU are generating files in folders in Git or not ?

If not can it be enhanced to generate files in folders ?

I ask this for the git file generation only. I do not expect that file in git will make change on S/4HANA system.

Just a good way to review changes made overtime to each customizing entry of each tables.... which is an interesting feature.

 

Does gCTS can support this ? With ou without any enhancement ?

What are the available API for git ?
asankadl
Participant
0 Kudos
Hi Karin/Experts,

We've got an error during deployment of a SAP ABAP change using Jenkins(project piper).

--- End library step of: gctsDeploy ---
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (gctsExecuteABAPQualityChecks)
Stage "gctsExecuteABAPQualityChecks" skipped due to earlier failure(s)
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Results in Checkstyle)
Stage "Results in Checkstyle" skipped due to earlier failure(s)
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Rollback)
Stage "Rollback" skipped due to earlier failure(s)
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: [gctsDeploy] Step execution failed (category: undefined). Error: creating repository on the ABAP system http://despina.xrsc.local:8080 failed: request to http://despina.xrsc.local:8080/sap/bc/cts_abapvcs/repository?sap-client=400 returned with response 500 Internal Server Error

GitHub has been notified of this commit’s build result

Finished: FAILURE

 

Please help me in understanding what needs to be done.

Thanks,

Asanka.
Karin
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Asanka,

is there maybe a bit more information about the error in the section gCTSDeploy?
Did you create a webhook so that Jenkins can communicate with Git?
Did you provide a user on Jenkins which can access and does have sufficient permissions on the ABAP system?

Kind regards
karin
Karan_Chopra_
Active Participant
0 Kudos
Hello Karin ,

 

When we are trying to run the pipeline in Jenkins we get error in Jenkins steps where it tries to access abapvcs

We have provided credentials in Jenkins for ABAP system and it is also able to access git repository.

Below is the config,  (using single Jenkins files instead of config.yaml for now)

Jenkinsfile



@Library(['piper-lib-os']) _
pipeline {
agent any
options {
disableConcurrentBuilds()
}

environment {
DEMOCREDS= 'ABAP'
HOST= 'https://************:****'
CLIENT= '100'
REPO= 'karanchopras-workbench'
REPO_URL= "https://github.com/karanchopras/workbench"
}


stages {

stage('gCTS Deploy') {
when {
anyOf {
branch 'gCTS'
}
}
steps {
gctsDeploy(
script:this,
host:HOST,
client:CLIENT,
abapCredentialsId:DEMOCREDS,
repository:REPO,
remoteRepositoryURL:REPO_URL,
verbose:true,
role:'SOURCE',
vSID:'GIT')
}
}

 


Pipeline Error


I checked the get request for abapvcs (https:/******:<host>/sap/bc/cts_abapvcs/config?sap-client=100) in Postman and it is working fine but here in Jenkins it gives error as shown in screen shot. Are we missing something in configuration?


Stage View

Karin
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi,

to me it looks like you are using basic authentication for GitHub. This is no longer supported. A token is required. I think this is the reason for the error

 

Kind regards

Karin
pepl
Active Participant
0 Kudos
HI! It's been more than 3 years since gCTS has been introduced but to my understanding a very basic feature as sharing the code between on-prem and BTP instance via gCTS is not solved. Does it mean SAP does not have an alternative to share the code between BTP and gCTS via Git without abapGit? Thank you!
Karin
Product and Topic Expert
Product and Topic Expert
Hi Petr,

as gCTS does direct imports and activates the coding, it is not possible to allow using gCTS between on-premise and BTP systems. Cloud systems use another version of ABAP than on-premise systems. This means that pulling via gCTS would result in import errors. Tis is different in abapGit as in there you have to manually activate the coding which means that coding checks can be done and you could change the coding so that it is cloud compliant

Hope this gives an idea why things are as they are

Kind regards

Karin
pepl
Active Participant
0 Kudos
That's understandable, but then I'm still cannot understand. gCTS brings very nice DevOps experience which abapGit Eclipse pluging doesn't bring. With piper project we're able to initiate deploys ( even it's from git branches ) , run ATCs , unit tests, collect code coverage. But abapGit just doesn't have this features.

From this point of view it makes ABAP for cloud much weaker that gCTS-enabled on prem ABAP.

What is the future vision for both technologies from DevOps point of view? Will we be able to run DevOps pipelines provided by SAP for ABAP Cloud in near future?