Hello Beautiful People,
OMG! Finally, I implemented this. And, it was so easy. Well, it’s always difficult until you have faced it.
I have always wanted to implement this, but not a single client that I worked for wanted to give this comfort of Transport Management to their developers until I met my current client, who also are enthusiasts like me, and they were like, “Sookriti, we have got to do this!”.
And thus, I started. The first thing I did was, hit the SAP Cloud Integration Community. I gathered a couple of blogs. I am going to drop them in the reference section. This blog is a quick summary of everything I did that the bloggers mentioned, and also what they didn’t.
It’s my belief that if stumble upon my blog, and want to follow it, chances are, you won’t be disappointed.
Pre-requisites:
A Global Account, a Subaccount, a Space, and below Entitlements:
Source /Target |
Service Name | Technical Name | Plan | Status |
Source | Cloud Transport Management | alm-ts | standard (Application) | ✅ |
Source | Cloud Transport Management | transport | standard | ✅ |
Source | Process Integration Runtime | it-rt |
integration-flow
|
✅
|
Source | Process Integration Runtime | it-rt |
api
|
✅
|
Source | Integration Suite | integrationsuite |
enterprise_agreement (Application)
|
✅
|
Source
|
Content Agent Service
|
content-agent-ui |
free (Application)
|
✅
|
Source
|
Content Agent Service
|
content-agent |
application
|
✅
|
Source
|
Content Agent Service
|
content-agent |
standard
|
✅ |
Target
|
Integration Suite | integrationsuite |
enterprise_agreement (Application)
|
✅
|
Target
|
Process Integration Runtime | it-rt |
integration-flow
|
✅
|
Target | Process Integration Runtime | it-rt |
api
|
✅
|
Create Subscription/ Instance, Service Key, and Destinations in Source and Target Subaccounts in BTP Cockpit
Copy paste this table below in an excel sheet, and start configuring.
Reference No. |
Source/ Target |
Entitlement Name |
Subscription |
Instance |
Instance – Service (Plan) |
Service Key |
Destination |
Destination Name |
|
|
A |
B |
C |
D |
E |
F |
G |
1 |
Source |
Cloud Transport Management |
✅ |
❌ |
➖ |
✅ |
✅ |
TransportManagementService |
2 |
Source |
Integration Suite |
✅ |
❌ |
➖ |
❌ |
❌ |
➖ |
3 |
Source |
Process Integration Runtime |
❌ |
✅ |
Process Integration Runtime (integration-flow) |
✅ |
❌ |
➖ |
4 |
Source |
Process Integration Runtime |
❌ |
✅ |
Process Integration Runtime (api) |
✅ |
✅ |
CloudIntegration |
5 |
Source |
Content Agent Service |
❌ |
✅ |
Content Agent Service (Plan) |
✅ |
✅ |
ContentAssemblyService |
6 |
Source |
➖ |
➖ |
➖ |
➖ |
➖ |
✅ |
TargetDestination |
7 |
Target |
Integration Suite |
✅ |
❌ |
➖ |
❌ |
❌ |
➖ |
8 |
Target |
Process Integration Runtime |
❌ |
✅ |
Process Integration Runtime (api) |
✅ |
✅ |
➖ |
In Source BTP Subaccount:
Reference A1 || Create Entitlements for Cloud Transport Management
Service Name | Technical Name | Plan | Status |
Cloud Transport Management | alm-ts | standard (Application) | ✅ |
Cloud Transport Management | transport | standard | ✅ |
Reference B1 || Create Subscription for Cloud Transport Management
Services ➡ Instances and Subscriptions ➡ Click Create]
Instance Name (as per naming convention) |
Service | Plan |
CloudTransportManagement | Cloud Transport Management | standard |
Reference E1 || Create Service Key for Cloud Transport Management
Services ➡ Instances and Subscriptions ➡ Select Instance ➡ Create Service Key
Reference F1 || Create Destination TransportManagementService
Connectivity ➡️ Destinations
Create a destination for the Instance which you created for Cloud Transport Management.
The name of the Destination should be, TransportManagementService
On the next screen, you will see all the elements from the Service Key created for Cloud Transport Management. In case you don’t see the URL, Client ID, Client Secret, and Token Service URL, then open the Service Key JSON file, and manually copy and paste it.
Add an additional property like sourceSystemId and the value, the same as what you will create as a Transport Node in SAP Cloud Transport Management. In my case, I am mentioning CF_DEV_NODE.
Connection Test
Reference A2 || Create Entitlement for Integration Suite
Service Name | Technical Name | Plan | Status |
Integration Suite | integrationsuite |
enterprise_agreement (Application)
|
✅
|
Reference B2 || Create Subscription Integration Suite
Services ➡ Instances and Subscriptions ➡ Click Create
Reference A3, A4 || In Source _ Create Entitlement for Process Integration Runtime
Service Name | Technical Name | Plan | Status |
Process Integration Runtime | it-rt |
integration-flow
|
✅
|
Process Integration Runtime | it-rt |
api
|
✅
|
Reference B3, B4 || Create Instance for Process Integration Runtime – api
Services ➡ Instances and Subscriptions ➡ Click Create
You will need to create 2 Instances to be created like below. One for integration-flow plan, two, for api plan
The service key generated for the plan integration-flow can be used for the authentication of Cloud Integration end-point URLs using OAuth-based authentication.
The service key generated for plan api shall be used to create a Destination for Cloud Transport Management, as shown below:
Reference E4 || Create Service Key for Process Integration Runtime
Services ➡ Instances and Subscriptions ➡ Select Instance ➡ Create Service Key
Reference F4 || Create Destination
Connectivity ➡️ Destinations
Create a destination for the Instance which you created for Cloud Transport Management.
The name of the Destination should be, CloudIntegration.
– First, open the Service Key, i.e. the JSON code, where you will find the Client ID, Client Secret, Token Service URL.
– For the URL (underneath the description field), as https://<cloud integration source tenant url>/api/1.0/transportmodule/Transport
– The cloud integration source tenant URL can be found in the JSON file mentioned as “url”: “https://somethingSomething.region.hana.ondemand.com”.
Connection Test
.
Reference A5 || Create Entitlement for Content Agent Service
Service Name | Technical Name | Plan | Status |
Content Agent Service
|
content-agent-ui |
free (Application)
|
✅
|
Content Agent Service
|
content-agent |
application
|
✅
|
Content Agent Service
|
content-agent |
standard
|
✅ |
Reference C5 || Create Instance for Content Agent Service
Services ➡ Instances and Subscriptions ➡ Click Create
Instance Name (as per naming convention) |
Service | Plan |
ContentAgentService | Content Agent Service | standard |
Reference E5 || Create Service Key for Content Agent Service
Services ➡ Instances and Subscriptions ➡ Select Instance ➡ Create Service Key
Reference F5 || Create Destination for Content Agent Service
Connectivity ➡️ Destinations
Create a destination for the Instance which you created for Content Agent Service.
The name of the Destination should be, ContentAssemblyService
On the next screen, you will see all the elements from the Service Key created for Content Assembly Service. In case you don’t see the URL, Client ID, Client Secret, and Token Service URL, then open the Service Key JSON file, and manually copy and paste it.
Connection Test
Reference F6 || Create Destination to connect with TargetDestination
Connectivity ➡️ Destinations
Create a destination to connect with the Target system. The name of the Destination can be anything, but let’s go for the name as TargetDestination.
The URL will be: https://deploy-service.cfapps.<Region of the Target Subaccount> .hana.ondemand.com/slprot/<Name of the Target Subaccount>/<Name of the Target Subaccount’s Space>/slp
Connection Test
In case you have more than 2 sub-accounts, and you wish to generate a TR each for all the CPI Tenant, add multiple Destination for Target, as shown below:
To summarise:
– the below 2 subscriptions and 4 instances will be left created, and each instance will have a Service Key created:
– the below 4 destinations will be left created:
In Target BTP Subaccount:
Add the entitlements for Integration Suite, and Process Integration Runtime (iflow, and api), in the same way as you added in the Source BTP Tenant.
Create Transport Nodes, and Transport Routes in SAP Cloud Transport Management
Create Transport Nodes
In SAP Cloud Transport Management, create a Transport each representing the Source and the Target Cloud Integration Tenants like below:
The Source Node should have the following settings:
The Target Node should have the following settings:
Create Transport Routes
Create Transport Routes as shown below. One route each representing the route from Dev to the lower environments.
Finally! All configs are complete
Testing Time!
STEP 1: Open the Cloud Integration’s Development or the Source Tenant, and click on Transport button. Then, a pop-up window will open, where you can fill in your precious comments, and select the check-box, as should below, in case you want the “Created By” to reflect your name. If you do not hit that check-box, it will show a system-generated name.
STEP 2: After the TR has been successfully generated, you will see a message like below:
STEP 3: Open Cloud Transport Management portal, and open the node which represents the Target Node, to import.
Tears of joy!
Go try it out, let know if it worked. If it didn’t, let me know that too!
Toodles!
Sookriti Mishra
❤️ As Roy T. Bennett says: “Be the reason someone smiles. Be the reason someone feels loved and believes in the goodness in people.”