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: 
moritzgysler
Product and Topic Expert
Product and Topic Expert
17,172

++ Update June 6, 2024 ++

To use the transport capabilities of SAP Cloud ALM in conjunction with the SAP Cloud Transport Management Service (CTMS), you've to establish a connection between SAP Cloud ALM and the SAP Cloud Transport Management service.

This guide will lead you through the steps that are needed to establish the connection for the SAP Cloud Integration use case.

 

Note

Please note that all the steps below only refer to an exemplary setup for Cloud Integration as part of the SAP Integration Suite. For other integration solutions, the steps are similar but may differ in certain aspects. In this case, refer to the documentation of your integration solution.

Subscribe to SAP Cloud Transport Management Service

In order to perform the following steps please make sure that your user has the role Global Account Administrator in your SAP BTP Global Account, and is a subaccount admin of the subaccount you want to subscribe SAP Cloud Transport Management service to.

Execute the following steps:

  1. You must configure your entitlements to SAP Cloud Transport Management. Assign entitlements for a dedicated subaccount, and add service plans accordingly. Recommended are standard (Application) and standard, which is used for programmatic access. Check this SAP Help Portal page for more details --> Configuring Entitlements to SAP Cloud Transport Management.
  2. Now you must subscribe to SAP Cloud Transport Management. Use the standard plan for the subscription. Check this SAP Help Portal page for more details --> Subscribing to Cloud Transport Management.
  3. Since you want to deploy transports through SAP Cloud ALM the pre-delivered roles MS_LandscapeOperator_RC and TMS_Viewer_RC are sufficient. Check this SAP Help Portal page for more details --> Setting Up Role Collections.

Create Service Instance and a Service Key

  1. Create a Space in your SAP BTP subaccount or reuse an existing one.
  2. In the space, create a service instance of SAP Cloud Transport Management. Select the standard plan of type Instance.
    1. Runtime Environment: Cloud Foundry
    2. Space: Select the space that you created / selected previously
    3. Instance Name: Enter a meaningful name
  3. Create a service key based on the service instance for SAP Cloud Transport Management.

Check this SAP Help Portal page for more details --> Creating a Service Instance and a Service Key

Set Up Cloud Integration

As a first step, you've to enable content transport in the Cloud Foundry environment by subscribing to the Content Agent (using the ContentAssemblyService) and Service Broker (using the Process Integration Runtime). Please follow the steps described in the Enabling Content Transport, Cloud Foundry Environment guide.

 

Note

Not every step is required in every case. For example, if you already created a space for transport management within your subaccount, you can skip certain steps.

After you've followed all the steps in this guide, please proceed with the next step.

Creating HTTP Destinations, Cloud Foundry Environment

In the next step, you need to create destinations in your SAP BTP subaccount where your source Cloud Integration tenant is hosted, in order to transport integration packages from a source tenant to the target tenant.

Please follow the steps described in the Creating HTTP Destinations, Cloud Foundry Environment guide.

 

Important

The URLs you've extracted in step a. and that you've to use in step b. are structured in the following way: 

The URL you can find in the section uaa in the JSON file relates to the token endpoint. You can identify this URL by checking if the term "authentication" is included in the URL. The URL above the uaa section of the JSON file relates to the service endpoint. (see screenshot below)

 


Make sure that the following destinations are available now:


 


 Set Up HTTP Destinations and Transport Routes 

In the SAP BTP subaccount where your source Cloud Integration tenant is hosted, create a destination targeted at the Cloud Transport Management service.

In the Destination Configuration section, enter values in fields based on the description provided in the following table.



Name


TransportManagementService (this value is case-sensitive)


Type


HTTP


Description (optional)


You can provide a description for your reference.

URL

Value of uri from the service key of your SAP Cloud Transport Management service instance.


Proxy Type


Internet

Authentication

OAuth2ClientCredentials

Client ID

Value of clientid (uaa section) from the service key of your SAP Cloud Transport Management service instance.


Client Secret


Value of clientsecret (uaa section) from the service key of your SAP Cloud Transport Management service instance.

Token Service URL TypeDedicated

Token Service URL

Value of url (uaa section) from the service key of your SAP Cloud Transport Management service instance.

Append oauth/token to the URL retrieved from the service key.


Additional Properties


Choose New Property.

As the key, enter sourceSystemId (value is case-sensitive).

As the value, enter the name that you want to use as the source node of the transport route, for example, DEV_NODE.

Reuse the value as the name of the source transport node later.




Note

The connection test can lead to an "404: Not found" error due to the fact that the endpoints address will only be completed by the actual export call, hence no resource can be found at the root address. This error can be ignored and you can go ahead. (error screenshot in the comments area)

In your SAP BTP Cloud Foundry subaccount (where you've subscribed to Cloud Transport Management service), create a new destination to create a destination targeted at the SAP BTP  subaccount where your target Cloud Integration tenant is hosted.

In the Destination Configuration section, enter values in fields based on the description provided in the following table.


Name


Provide a name for the destination.


Type


HTTP


Description (optional)


You can provide a description for your reference.


URL


To address the Cloud Deployment service, you have the following options:


Using the name of your org and space

https://deploy-service.cfapps.<default-domain>/slprot/<myorg>/<myspace>/slp

Note: You need to escape special characters in your org and space name
with a proper URL encoding. For example, replace space characters
with %20, and commas with %2C.

Example: https://deploy-service.cfapps.eu10.hana.ondemand.com/slprot/myorg/myspace/slp

Using the GUID of your space

https://deploy-service.cfapps.<default-domain>/slprot/<my-space-guid>/slp

Note: To retrieve the GUID of your space, use the Cloud Foundry Command Line Interface (cf CLI). Log on to your org, and execute the following command: cf space <my-space-name> --guid. For more information, see Working with the Cloud Foundry Command Line Interface.

Example: https://deploy-service.cfapps.eu10.hana.ondemand.com/slprot/977a24d6-2eaf-432d-a3e1-5294451551a3/slp

The Cloud Deployment service is available on the default domain of your subaccount. Usually, the default domain is the first shared domain that is listed by the command cf domains of the cf CLI. If multiple shared domains are listed, validate the URL by issuing a GET request for the listed shared domains. The response for the correct (default) domain is 200.

Example: Request: GET https://deploy-service.cfapps.eu10.hana.ondemand.com/public/ping
Response: 200 OK.

Proxy Type


Internet


Authentication


Basic Authenticaton


User



Specify the name of the platform user that is used for the deployment.

Note: The user used for the destination must be a valid user on Cloud Foundry environment, and it must have the role SpaceDeveloper in the target space. The user used for the destination isn’t subject to any Data Protection and Privacy requirements.

Password


Specify the password of the platform user.



You've created the necessary destinations. The next steps are to create transport nodes and routes.

 

    1. In Cloud Transport Management service, create the source node. The name for the source node must be the same as the value of the additional property SourceSystemId you defined in your TransportManagementService destination.

    2. Then create the target transport node and select the destination you created for your target tenant / subaccount before. (CPI_PROD_CF in screenshot above)
    3. In a last step you define your transport routes in your Cloud Transport Management.

 

Important
    • You have to configure auto forward mode for the transport nodes in order to make use of Cloud ALM in conjunction with Cloud Transport Management.


It could look like this:

 


 
Find more information about the destination and transport routes creation in the Creating HTTP Destinations and Transport Route guide. When you open the guide, choose the blue box called Cloud Transport Management to see the information relevant to you.

Connect SAP Cloud Transport Management to SAP Cloud ALM

Now you must connect your SAP Cloud Transport Management instance to SAP Cloud ALM. In case you've subscribed to several SAP Cloud Transport Management service instances it's possible to connect all of them to the same SAP Cloud ALM. 

In order to perform the following steps please make sure that your user has the role Global Account Administrator in the global account that was created when you requested SAP Cloud ALM, and is a Subaccount Admin of the subaccount containing your SAP Cloud ALM subscription.

Execute the following steps:

  1. Create a Destination in the Connectivity area of your SAP Cloud ALM subaccount.
  2. Enter the values of the table below in the Destination Configuration area. The values must be taken from the service key created in section Create Service Instance and a Service Key of this blog:
    1. Name

      Here, use the prefix CALM_FTR_CTMS_ and then add a meaningful suffix.

      Example: CALM_FTR_CTMS_FEATURES (this value is case-sensitive)

      Type

      HTTP

      Description (optional)

      You can provide a description for your reference.

      URL

      Value of uri from the service key of your SAP Cloud Transport Management service instance.

      Proxy Type

      Internet

      Authentication

      OAuth2ClientCredentials

      Client ID

      Value of clientid from the service key of your SAP Cloud Transport Management service instance.

      Client Secret

      Value of clientsecret (uaa section) from the service key of your SAP Cloud Transport Management service instance.

      Token Service URL

      Value of  URL (uaa section) from the service key of your SAP Cloud Transport Management service instance.

      Append oauth/token to the URL retrieved from the service key.

    2. Example Destination: Destination for CTMS connection.png
  3. After you've established the connection, it can take up to 5 minutes before the first transports appear in the Features app.

Caution

Don't maintain two destinations to the same SAP Cloud Transport Management service instance because this leads to duplicate entries of transports in the transport assignment dialog. Even if you delete one destination, the transports that were already pushed to SAP Cloud ALM aren't deleted since existing data could still be relevant for audit purposes.

Wrap-Up

To check whether your scenario works you can do a configuration check for the "Transport Mode: Transport Management Service" in your "Settings" area in Cloud Integration.

In the Features app of SAP Cloud ALM, transports created in Cloud Trasnport Management appear in the transport list with the destination as a prefix to the transport ID. See screenshot below.

loio994cb27f23a44416a90f27aee0de2da0_LowRes.png

Looking forward to receiving feedback. For latest updates and notifications you can follow me by clicking @moritzgysler .

20 Comments