Cloud Integration – Using Transport Management Service for a Simple Transport Landscape
In the present blog, I reproduce and summarize all steps required to set up Transport Management Service to support a concrete, simple transport scenario. In particular, I would like to use this service to transport integration content (for SAP Cloud Integration) from a source to a target tenant.
This blog shows how to transport integration content from a Neo source tenant to a Neo target tenant.
For a detailed instruction how to use Transport Management service to transport integration content from a source to a target tenant in the Cloud Foundry environment, check out this blog: Introducing SAP Cloud Platform Content Agent: Enhanced Transport Capabilities for SAP Cloud Platform Integration Suite Content.
A big Thank You to the following people for their support: Ralf Belger, Boris Zarske, VishnuPrasath Dhayanithi, Dimitar Aleksandrov.
To mention some further information sources worth to check out:
- You find a detailed step-by-step description of the steps to set up this service in the blog Getting started with SAP Transport Management Service (beta) for SAP Cloud Platform.
- The documentation of SAP Cloud Integration contains information how to transport integration content using this service (in the documentation of Cloud Integration search for Content Transport).
- Documentation of Transport Management Service (beta)
In this blog, I walk you step-by-step through the tasks required to set up the following transport scenario: You like to use Transport Management Service to transport integration content from a source tenant (referred to as dev tenant) to a target tenant (referred to as test tenant).
It is important to point out that Cloud Integration tenants (in our example, the dev and the test tenant) run in the SAP Business Technology Platform, Neo environment, whereas the Transport Management Service runs in the SAP Business Technology Platform, Cloud Foundry (CF) environment. For this blog, I assume that you have access to a Cloud Foundry account. For more information on the different environments, see the online documentation of SAP Cloud Platform and search for Environments.
The following figure shows the transport landscape:
The following list provides a summary of the tasks to set up this landscape:
- Get entitled to use Transport Management Service. You can use an own global Cloud Foundry account (for the following steps, I assume that you have a global account of SAP Business Technology Platform, Cloud Foundry environment). Check out the documentation of Transport Management Service to find out about eventual process changes once the Transport Management Service becomes general available and the beta phase ends.
- In the Cloud Foundry environment: Create a subaccount of your global account and subscribe to Transport Management Service.
- Enable API access to Transport Management Service.
- Create the required destinations.
- Use Transport Management Service to create source and target nodes and a transport route to connect both of them.
In the following part of the blog, you find the detailed description of these tasks.
Create Subaccount and Subscribe to Transport Management Service (Cloud Foundry)
As prerequisite, make sure that you have access to a global account of SAP Business Technology Platform, Cloud Foundry environment.
- Within this global account, create a new subaccount. Make sure that you enable beta features (select the Enable Beta Features option).
- Select the subaccount and choose Subscriptions.
- Select the tile Transport Management Service.
- On the next screen, choose Subscribe.
- The Not Subscribed field changes to Subscribed.
As next step, assign the required roles to your users. To do that, perform the following steps:
- Go back to the overview page of your subaccount (for example, by clicking the subaccount link in the breadcrumb link on top).
- Choose Security > Role Colection.
- Click New Role Collection, and in the next screen specify a name (for example, Test Transport). A link to the new role collection is added (with the name of the role collection as link text).
- Click the link with the role collection name.
- On the overview page for the role collection, click Add Role.
- As Application Identifier, select the application identifier provided by SAP (which is alm-ts!t339; this identifier corresponds to the SAP organization where the Transport Management Service is running).
- For both attributes Role Template and for Role select the entry Administrator.
- Choose Save.
- Go back to the overview page of your subaccount.
- Click Security > Trust Configuration.
- Choose SAP ID Service.
- Enter the user (email address) that needs to have administrator rights (your user in case you like to set up Transport Management Service) and choose Show Assignments.
- Click the Add Assignment button and select the role collection created with the previous steps.
- Click Add Assignment. The screen should now look like in the following figure.
- Go back to the overview page of your subaccount and choose Subscriptions.
- On the Transport Management Service tile, click Go To Application.
- A login screen opens. Login with your user and password.
- The Transport Management Service is opened.
You can keep the application open, as you need to perform additional steps later-on in Transport Management Service (to create transport nodes and routes).
Enabling API Access to Transport Management Service
With the next steps, you need to enable API access to the service.
- Go back to the overview page of your subaccount, choose Overview, and click Enable Cloud Foundry.
- Provide an Organization Name and choose Create.
- Go to the global account and choose Entitlements.
- From the dropdown list, select Transport Management Service and in the field at right of the dropdown list, enter the name of your subaccount.
- Click Edit and under Transport Management Service, next to your subaccount name, increase the number from 0 to 1.
- Click Save.
- Go back to your subaccount (by clicking the subaccount name in the current dialog).
- Select Quota Plans.
- Choose New Plan, provide a name for the plan, and in the Services field enter 1.
- Click Save.
Now you need to create a new Cloud Foundry space for the subaccount and assign the quota plan.
- In the navigation area, choose Space.
- Choose New Space, provide a name and click Save.
- Go back to Quota Plans.
- Under Plan Assignments, select the previously created quota plan from the dropdown list for Quota Plan (in our example: test_transport).
- Click the Space name (TestSpace for example).
- Choose Service Marketplace and then click the Transport tile.
- Choose Instances.
- Create a new instance (click New Instance).
- Choose Next, and then again Next on the following screen.
- Enter an instance name and choose Finish.
- Click the instance name and choose Service Keys.
- Choose Create Service Key.
- Enter a name for the key.
- The connection details are displayed.
You need this information to create the required destination from your Cloud Integration Neo account (dev) to Transport Management Service.
You have successfully set up Transport Management Service. You now can start configuring the transport landscape.
Creating the Required Destinations
Start creating the required destinations. For our example transport landscape (with the dev and the test tenant), you need to create the following destinations:
- In the Solutions Lifecycle Management service of the Neo dev subaccount (transport source): Create one destination (with name TransportManagementService) that points to the Cloud Foundry subaccount (where the Transport Management Service is active). To do that, you need the service key created in the previous step.
- In the Neo dev subaccount (transport source): On the Solutions Lifecycle Management service, create one destination with name CloudIntegration that points to the Cloud Integration tenant management node of the same dev subaccount.
- In the Neo test subaccount (transport target): On the Solutions Lifecycle Management service, create one destination with name CloudIntegration that points to the tenant management node of the same subaccount.
- In the Cloud Foundry subaccount (Transport Management Service): Create one destination (with an own-chosen name, for example CPI_TEST) that points to the target (test) subaccount (Neo)
To make it easier to keep an overview of the next steps, the following figure shows all required destinations in the transport landscape.
Let’s start with the two destinations in the Neo test subaccount (the source from which you like to transport integration content).
- Go to your dev subaccount in the Neo environment.
- Choose Services and then the tile Solutions Lifecycle Management.
- Under Take Action click Configure Destinations.
- Choose New Destination and specify the following attributes:
Attribute Value Name TransportManagementService Type HTTP URL Enter the parameter provided as uri in the service key (it starts with https://transport-service-app). Authentication OAuth2ClientCredentials Proxy Type Internet Client ID Enter the value of clientid from the service key created in the previous step. Client Secret Enter the value of clientsecret from the service key created in the previous step. Token Service URL
Enter the value of url from the service key created in the previous step and append it by /oauth/token.
https://<url from service key>/oauth/token
You can leave the fields Token Service User and Token Service Password empty.
- Select New Property.
- In the dropdown field, enter sourceSystemId, and in the field to the right DEV_NODE. This is an example ID, but I use the same ID later-on when defining the transport node for the source account (therefore, note down the chosen value of sourceSystemId).
The destination should look like in this figure.
- Save the destination.
Now define the destination CloudIntegration on the source (dev) subaccount in Neo that points to the tenant management node of the dev subaccount.
- Choose New Destination and enter the following attributes.
Attribute Value Name CloudIntegration Type HTTP URL Enter the URL of the source tenant (assigned to the dev subaccount in Neo). It has the following form: https://<dev tenant>-tmn.hci.eu1.hana.ondemand.com/itspaces. Authentication BasicAuthentication User User for the dev subaccount Password Password for the dev subaccount
- Save the destination.
Repeat these steps on the target (test) subaccount in Neo and create a destination with the name CloudIntegration there as well. As URL use the one that points to the tenant management node of the target (test) subaccount.
Now define the destination on the Cloud Foundry subaccount where the Transport Management Service resides.
- Go to your Cloud Foundry subaccount.
- Choose Destinations.
- Click New Destination.
- Provide the following settings:
Attribute Value Name Enter a string of your choice, for example, CPI_TEST Type HTTP URL
Enter the URL of the lifecycle management service in the test account. It has the following form: https://<host>/slservice/slp/basic/<ID of the Neo account>/slp.
The URL is composed in the following way:
https://slservice.<host>/slservice/slp/basic/<Neo account ID>/slp
- host is the host name of your account, for example:
- ID is the technical name of the Neo account, enter the account name (not the Display Name) of the test account, for example, abcd123ef. Note that this is the target account of your transport landscape. You find this name on the overview page of the subaccount under Subaccount Information (the value beneath the Name attribute).
Authentication BasicAuthentication User User that is member of the target (test) account Password Password for user that is member of the target (test) account
- host is the host name of your account, for example:
Creating Transport Nodes in Transport Management Service
A transport node represents either a source or target endpoint in a transport scenario – in our example, you have two nodes, one for the dev and one for the test account.
- Open the Transport Management Service.
- Go to Transport Nodes.
- Choose + to create a new node.
- Let’s start with the node for the source account (dev). Enter a name and a description for the node. For example, enter the name DEV_NODE, enter a description, select the Allow Import to Node checkbox, and click OK.
- Repeat the steps to create a node for the target account (test). Enter the name (for example) TEST_NODE, provide a description, and select the Allow Import to Node checkbox.
- As Content Type, select Multi-Target Application.
- Select the destination CPI_TEST created before and click OK.
The created transport nodes should show up on the Transport Management Service page like shown in the following figure.
Creating Transport Routes
- Open Transport Management Service and select Transport Routes.
- Choose + to create a new route.
- Enter a name for the route, select the source node (DEV_NODE) and a target node (TEST_NODE), and click OK.
Now, you have finally set up the transport landscape for your transport scenario. As last step, you need to determine the transport mode for your test tenant.
Transporting Integration Content
Based on this setup, you can now transport integration packages from the dev to the test tenant with only a few clicks. I keep this section short. For more information, refer to the documentation of Cloud Integration (search for Content Transport).
To summarize, these are the steps:
- Open the Web UI for your source (dev) tenant (the URL is composed in the following way: https://<dev tenant>-tmn.hci.eu1.hana.ondemand.com/itspaces), choose Settings and select the Transport tile, Click Edit and as Transport Mode select Transport Management Service (Beta). Save the settings.
- In the Design section, select the integration package that you like to transport and choose Transport (you need to add a transport comment).
- Open Transport Management Service, select the transport node of the target tenant, select the import queue for the initiated transport confirm to import the content to the target tenant.
- Go to the target tenant and check if package arrived there.