Skip to Content
Technical Articles
Author's profile photo Murali Shanmugham

Transport Fiori Launchpad sites on SAP BTP using SAP Cloud Transport Management service

 

Building a central Launchpad using SAP Launchpad service on SAP BTP

Part 1 – Getting Started

Part 2 – Understanding the options around developing HTML5 apps in Cloud Foundry

Part 3 – Developing HTML5 apps

Part 4 – Integrating HTML5 apps with the Central Fiori Launchpad

Part 5 – Integrating 3rd Party apps with the Central Fiori Launchpad

Part 6 – Integrating chatbots with the Central Fiori Launchpad

Part 7 – Integrating with remote content providers

Part 8 – Enabling Notifications

Part 9 – Transporting Launchpad sites using SAP Cloud Transport Management service

A much-awaited capability of transporting Fiori Launchpad sites is now available on SAP Business Technology Platform (BTP). SAP Cloud Transport Management service enables the transport of application and interface artefacts between SAP BTP accounts and is well integrated with many other services on SAP BTP. With the recent update, SAP Cloud Transport Management service now also supports transporting Fiori Launchpad sites. You will be able to see the various touch points of the Cloud Transport Management service documented in SAP Help.

In this blog post, I will walk you through the steps which are required to be configured in order to transport Launchpad sites. You can find the high level documentation of all these step in this Help documentation.

Landscape setup

For demonstration, I have created 3 subaccounts to represent a landscape with 3 environments – DEV/QA/PRD.

The Dev environment has instances of Business Application Studio, Alert Management and Transport Management. The Launchpad service along with the HTML5 apps will be enabled and deployed in the remaining subaccounts.

Create Launchpad service instance:

In the DEV subaccount, I have created a subscription & an instance for the Launchpad service (Standard Plan). A service key for the instance is required for creation of destinations.

Repeat the same for QA and PRD subaccounts too.

Create Cloud Transport Management service instance:

Similarly, I have created a subscription and service instance for the Cloud Transport Management service. A service key for the instance is required for creation of destinations.

You do not need to repeat this step for QA & PRD subaccounts. To access and configure the Launchpad and Transport Management service, don’t forget to assign the relevant role collections. You can find them in the Help documentation –  Launchpad service & Transport Management service.

Setup Destinations in the DEV subaccount

In order to see the “Transport Site” or “Transport Selected Content” option within the site manager of the Launchpad service, you would need to configure a destination (under the connectivity menu) with the name “ctms_destination”.

Use the Authentication type as OAuth2ClientCredentials and use the following mapping from the Service Key created for the Transport Management service.

Use the value of: As the value of:
uri URL
clientid Client ID
clientsecret Client Secret
url Token Service URL and add at the end: /oauth/token

In the additional parameters, add node-name and set the value with the name of the initial transport node configured in the Transport Management service. This internally invokes the API /nodes/export and the transport request is added to the queues of the follow-on node provided as the parameter name.

Next, you will need to create 3 destinations for each of the launchpad sites which you are going to use in DEV/QA/PRD.

Similar to the previous destination, you will need the values from the service key created for the launchpad service.

Use the Authentication type as OAuth2ClientCredentials and use the following mapping from the Service Key created for the Launchpad service.

Use the value of: As the value of:
portal-service

URL and add at the end: cdm_import_service

For example:

https://portal-service.cfapps.eu10.hana.ondemand.com/cdm_import_service

clientid Client ID
clientsecret Client Secret
url Token Service URL

Configure Destinations to XSUAA Instances

You would also need to create a service instance for “Authorization and Trust Management Service” with apiaccess plan. You would need to have this configured in all the remaining subaccounts too.

Once a service instance is created, you need to create a destination of type “Service Instance” and use the exact name “xsuaa-apiaccess” as shown below.

Configuring the Launchpad site

Here is the overall solution diagram which depicts how various components will interact with each other to transport the contents across different subaccounts in SAP BTP.

I am assuming you know how to configure a launchpad site. If this is new to you, here is a link to a tutorial which you can use to familiarize yourself on the various objects which are available to configure in your launchpad site.

For demonstration, I have a simple site with a role called “Purchase Order” and configured it to provide access to a set of apps under a group called “Purchase Order Processing”.

I have configured a Launchpad site which has access to this role and the related contents.

This is how the launchpad site would appear at runtime (displaying 3 apps under the group Purchase Order Processing)

Configuring the Transport Management service

In the Transport Management service, you will need to configure transport nodes to represent your landscape and create routes to indicate the path for the flow of contents in the landscape.

I have created 3 transport nodes – DEV/TST/PRD.

Here is the configuration for the DEV transport node. The destination should be correctly set to match the DEV_Sites destination which has been created earlier. Also ensure that the content type is “Application Content”. For the remaining transport nodes, ensure that you select the correct destination. This will determine the subaccount to which the transport Management will push the contents.

I have also created two transport routes to connect DEV/TST/PRD environments as shown below.

Transport your Launchpad site

Navigate to the Launchpad service – Site Manager in your DEV subaccount and select the “Transport Site” option.  This option will transport the site along with the related contents.

This will initiate the transport of contents and communicate with the Transport Management service. In the Action logs, you will be able to see the files being uploaded.

The Launchpad contents would now be available in the import queue of the “PORTAL_TST” transport node. From here, I can import these contents by clicking on “Import Selected” button.

The launchpad site along with the contents will soon appear in the TMS_QA subaccount.

Make sure you assign the role collection to your users before trying to access the launchpad site

Within the Transport Management service, you will be able to find that the content has progressed and is in the import queue of the PRD environment. Similar to the previous step, you can select the content and import them.

This will kick off the import process of the Launchpad site and the contents into the TMS_PRD subaccount.

Transporting specific contents

The Content Manager of the Launchpad service allows specific contents to transported (instead of transporting the entire site). All the related contents will also be transported with this approach. For example, when a role is selected, the apps assigned to it, and the groups and catalogs to which these apps are assigned, are also transported. There is no need to select the individual objects.

Let me show you how to transport new/updated contents once you have already transported the Launchpad site. Within your Content Manager, you have the option to select the new/updated contents and transport them.

Below, I have created a new app config called “Monitor Purchase” and updated the existing role/group to include this app.

Similar to the previous steps in the transport node, you will be able to see this request in the import queue of the “PORTAL_TST”.

Importing this content will push all the relevant changes to TMS_QA subaccount. You would just repeat the same process to progress this change all the way to TMS_PRD subaccount.

When you are developing extension apps on SAP BTP, you will need a way to manage Fiori Apps & integration contents along with the Launchpad site. There are many DevOps related services on SAP BTP – for example: Alert Notification, CI/CD, Transport Management etc. Evaluate these options to see how best you can manage the software deliverables and transport them together across different SAP BTP subaccounts.

 

Assigned tags

      9 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Harald Stevens
      Harald Stevens

      Thanks a lot for this great blog post (and the good news).

      Kind regards
      Harald

      Author's profile photo Gurkan Yilmaz
      Gurkan Yilmaz

      Great post! Thanks a lot!

      Author's profile photo Saar Dagan
      Saar Dagan

      Great article, thanks for the clear guide. 👍

      Author's profile photo Jawad Margieh
      Jawad Margieh

      Nice writing, very clear! Thanks a lot.

      Author's profile photo Rachid Kaouass
      Rachid Kaouass

      Hi,

       

      thanks for the blog!

      I've a question, I can add the "Launchpad Service" subscription but I can't find the possibility to add the instance for the service "scp-launchpad". Without instance, we can't add add service key.

      I've even try to add the scp-launchpad using Command-line but it says that scp-launchpad doesn't exists.

       

      Thanks

      Author's profile photo Murali Shanmugham
      Murali Shanmugham
      Blog Post Author

      Hi Rachid,

      Please check if you have added the entitlement with these two plans.

      Author's profile photo Rachid Kaouass
      Rachid Kaouass

      Hi Murali,

       

      unfortunately, I've checked the entitlements but I don't have the second option.

      I'm using trial account, but even on customer environment it is the same.

       

      Author's profile photo Séverin de BEAULIEU
      Séverin de BEAULIEU

      Hello,

      I don't have it either on a CPEA account. Any idea to solve this issue?

      Cheers,

      Author's profile photo Murali Shanmugham
      Murali Shanmugham
      Blog Post Author

      Hi Séverin & Rachid,

      The ability to create service instance for Launchpad does seem to be there in the trial environment. Let me check if there is an issue with CPEA accounts.