Transport Fiori Launchpad sites on SAP BTP using SAP Cloud Transport Management service
|Building a central Launchpad using SAP Launchpad service on SAP BTP
[Update 2021]: Note that this asset was created before our branding changes related to SAP technology were announced on January 2021. Note that SAP Cloud Platform Launchpad was renamed to SAP Launchpad service, and SAP Cloud Platform Portal was renamed to SAP Cloud Portal service
[Update Nov-2022]: Please note that this blog was published prior to the re-branding related to SAP Build portfolio, which was announced at SAP TechEd 2022. SAP Launchpad service and SAP Work Zone come together under the SAP Build Work Zone brand, with two editions: standard edition (formerly SAP Launchpad service) and advanced edition (formerly SAP Work Zone). You can learn more in this announcement blog post: SAP Build Capabilities Explained | SAP TechEd | SAP News Center
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.
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:|
|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:|
URL and add at the end: cdm_import_service
|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.
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.
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.