Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
TomCenens
Active Contributor

Not so long ago I received the question “Can we use CTMS inside of SAP Cloud ALM to do transports for SAP BTP and integrate the process in CHARM?” The answer is “Yes you can do that”. Then the next question was “How do we do that?”. I thought it would have been easy to find the answer in the documentation of SAP but that turned out to be a bigger quest than I had imagined at first so I decided to write this blog and share what I have figured out looking into this.

For those new to CTMS, it stands for “Cloud Transport Management Service” and it’s a service that existed already on SAP BTP in the past. It has been integrated into SAP Cloud ALM as being part of SAP Cloud ALM so right now it’s available outside of SAP Cloud ALM as a separate service and inside of SAP Cloud ALM as part of SAP Cloud ALM.

The CTMS service outside of SAP Cloud ALM and the CTMS service inside of SAP Cloud ALM are identical. So there are no arguments in terms of functionality to go for one or the other. There is one difference however and that’s in the pricing. The SAP Cloud ALM usage rights include an amount of bandwidth GB’s that are otherwise to be paid for if you are using the service outside of SAP Cloud ALM.

In terms of the configuration, there is a difference, meaning that instead of directly approaching the CTMS service, in the case of SAP Cloud ALM, you use the SAP Cloud ALM API instead. If this sound complicated and you think “What on earth is he talking about?!?”. No worries, just continue reading, things will be alright by the time you reach the end of the blog post. If not, there is the comments section of course.

I found blogs online about the integration of CTMS and CHARM but they discuss the CTMS outside of SAP Cloud ALM as part of a SAP BTP tenant in which the CTMS service is active. If you are eligible as a customer to use SAP Cloud ALM it makes sense to leverage CTMS as part of SAP Cloud ALM.

As mentioned already, the integration of CTMS inside of SAP Cloud ALM differs slightly from the CTMS integration outside of SAP Cloud ALM. It’s not necessarily difficult to do however once you know how to do it. I bet that sounds familiar if you’re working in the SAP space.

In general, you follow the steps to set up SAP Cloud ALM as an initial point where to start from. There is however an essential part that can be missed by being quick, during the SAP Cloud ALM API instance creation, you have to enable the transport services if you want to use them later on. So before I’m going into that specific part of establishing communication between CTMS and SAP Solution Manager, we are taking a small detour on the SAP Cloud ALM API instance creation.

SAP Cloud ALM API instance creation

The creation of this API instance is performed on the SAP BTP SAP Cloud ALM subaccount level. You can find the relevant information on the help.sap.com URL:

Enabling SAP Cloud ALM API | SAP Help Portal

The essential part is when you create the SAP Cloud ALM API instance, you have to include a piece of JSON code.

TomCenens_0-1711603014305.png

 

Reference: Enabling SAP Cloud ALM API | SAP Help Portal

This part is essential to enable the transport functionality inside of the SAP Cloud ALM API. If the SAP Cloud ALM API was created without this JSON specification, you should be able to update it and include the JSON definition. This didn’t work for me however so I had no other option then to create a new SAP Cloud ALM API instance and include the JSON upon creation. So be careful that you don’t click “next” to quickly and forget to insert this piece of JSON if you want to use the CTMS inside of SAP Cloud ALM.

Reference: Enabling SAP Cloud ALM API | SAP Help Portal

Once you have this in place, you generate a service key for the SAP Cloud ALM API instance that you will use for the on-premise connectivity to SAP Cloud ALM. The information in this key is used for establishing connectivity  for monitoring purposes of on-premise landscapes but it’s also used for the creation of HTTP destinations from SolMan to SAP Cloud ALM CTMS.

Setting up the connectivity for the CTMS usage between SAP Solution Manager and SAP Cloud ALM

Once you are sure the SAP Cloud ALM API instance creation was either done right or redone, you need to set up communication between SAP Solution Manager where your CHARM process runs, typically your productive SAP Solution Manager 7.2 instance and SAP Cloud ALM CTMS.

You’ll need two HTTP based destinations in SAP Solution Manager:

TMS_AUTHENTICATION and TMS_REST_API

You can find a lot of information that is useful in the following blog post:

How to use the integration of SAP Cloud Platform T... - SAP Community

The only thing is that the connections set up there are against CTMS outside of SAP Cloud ALM.

To set these SM59 HTTP destinations up against the CTMS inside of SAP Cloud ALM, we need to use the SAP Cloud ALM API service key information.

Setting up the TMS_AUTHENTICATION destination

 

TomCenens_1-1711603014330.png

 

The target host for TMS_AUTHENTICATION should be the value of section UAA and then the value of URL.

https://<domain>.authentication.eu20.hana.ondemand.com

The service no needs the value 443 for HTTPS.

TomCenens_2-1711603014345.png

 

In the tab Logon & Security insert the service clientid as user-id and clientsecret as password. Additionally, active SSL.

Setting up the TMS_REST_API HTTP destination

TomCenens_3-1711603014355.png

 

The target host should be the value of host of the endpoint API without a path.

Then the path prefix is /api/imp-cdm-transport-management-api/v1 -> you will not find this back in the service key. This is documented in other documentation about setting up a connection within SAP BTP towards the CTMS that is integrated into SAP Cloud ALM.

In my case it was the below but this depends on which region your SAP Cloud ALM is deployed in, in terms of the target host that needs to be used (in my case):

eu20.alm.cloud.sap

443

/api/imp-cdm-transport-management-api/v1

TomCenens_4-1711603014364.png

On the Logon & Security tab, do not insert a user. Flag SSL as active.

In retrospect, this makes sense since CTMS is really integrated inside of SAP Cloud ALM and not running as a separate instance when you look at your SAP BTP subaccount.

Other steps involved and needed to set up CHARM can be found in the mentioned blog post(s) and on help.sap.com. You'll need to setup connectivity between CTMS and your SAP BTP tenants ~ destinations are needed for that as well as defining the SAP BTP tenants as CTMS nodes on the SAP BTP side. On SAP Solution Manager, you'll need to define your CTMS nodes are external services in LMDB which have attributes in LMDB that define the connectivity. These things are described in help.sap.com documentation as well as blog posts that are already around hence I'm not re-iterating those steps in detail once more.

Labels in this area