SAP Fiori Launchpad For Developers - Architecture Overview
SAP Fiori Launchpad For Developers - Architecture Overview
SAP Fiori Launchpad For Developers - Architecture Overview
Architecture Overview
Applies to:
User Interface Add-On 1.0 SPS 06 and higher
Summary
One of the key features introduced in user interface add-on 1.0 SPS 06 is the SAP Fiori launchpad. In
contrast to the launch page used in SPS 04, the launchpad acts as runtime shell environment for the SAP
Fiori apps in which the personalized home page is one feature among many other services.
In this article, we will describe the major technical building blocks of the SAP Fiori launchpad and explain
how to embed SAPUI5 apps into the launchpad.
04 August 2014
Author Bio
Steffen Hster, SAP SE
Steffen is working as a software architect in the UI Technology department, with a focus on UI integration
topics.
Olivier Keimel, SAP SE
Olivier is working as a knowledge architect in the P&I Technology Engineering Services department, with a
focus on UI integration topics.
.
Table of Contents
Building blocks ..............................................................................................................................................3
Embedding Apps into the SAP Fiori Launchpad ............................................................................................ 5
Embedding SAPUI5 Applications into the SAP Fiori Launchpad .................................................................5
File Structure .............................................................................................................................................5
Component Configuration ..........................................................................................................................5
Configuration Properties used by the SAP Fiori Launchpad .................................................................................... 6
Building blocks
The graphic on the next page gives an overview of the building blocks described here.
The SAP Fiori launchpad is based on the so-called unified shell architecture. The guiding principle of the
unified shell is to have a single, platform-independent, client-side runtime environment which can be hosted
on different server platforms (for example SAP NetWeaver AS ABAP, SAP HANA XS, SAP HANA Cloud
Platform). This means that the shell offers unified services with platform-independent interfaces (APIs) to
the hosted apps and shell components. The implementations of these services can utilize different service
adapters for the respective platform if they need platform-specific behavior.
The visualization of the shell is independent of the shell services. This is achieved by using a shell renderer
that can be replaced by a different implementation.
The apps are embedded in a so-called application container. As this is an independent re-use component,
the embedding aspect is decoupled from the renderer. The application container can host SAPUI5
components, Web Dynpro ABAP applications and SAP GUI for HTML transactions.
The shell services and renderers are managed by the central shell container. It utilizes a runtime
configuration which defines the concrete implementations for services, adapters, and shell renderer, as well
as global settings like theme, language, system and user data.
The runtime configuration is fed by the following settings:
Static configuration settings in the hosting HTML page
Dynamic configuration data read from the front-end server during startup
Dynamic settings passed as query parameters in the URL
Finally, all described JavaScript components are embedded into a single HTML page. The SAP Fiori
launchpad implementation of the SAP NetWeaver ABAP front-end server contains a standard page called
FioriLaunchpad.html. You can create custom start pages which utilize the shell with different static
configurations.
File Structure
The SAPUI5 component is defined in a file named Component.js, which should be located in the root
folder of your application. In an Eclipse project, it is typically located under src/main/webapp or
WebContent.
For more detailed information, see SAPUI5 Components in the SAPUI5 documentation.
Component Configuration
The definition of an SAPUI5 component includes the component metadata. The component metadata
includes a config object containing additional information. Define the launchpad-specific configuration in this
config object. This configuration is used in several scenarios as described below.
Properties
Description
resourceBundle
Path to the resource bundle that holds the translated app title. Example:
i18n/i18n.properties
titleResource
Key of the app title text in the resource bundle. The title is typically
displayed in the browser tab
favIcon
Path to the "favicon" (*.ico) file for the app, which is typically displayed in
the address bar or next to the window title or tab title.
"homeScreenIconPhone",
"homeScreenIconPhone@2",
"homeScreenIconTablet",
"homeScreenIconTablet@2"
Paths to icons with different resolutions that are used when users add the
(launchpad page containing the) app to their mobile devices home
screens. The properties with an @2 suffix allow you to refer to special
icons for high-resolution devices.
Use the following icon sizes:
homeScreenIconPhone: 57 x 57 pixels
homeScreenIconPhone@2: 114 x 114 pixels
homeScreenIconTablet: 72 x 72 pixels
homeScreenIconTablet@2: 144 x 144 pixels
Path resolution
For all properties that reference files, there are several ways to define them:
Absolute reference, typically starting with "/", so it's an absolute path on the same host.
Relative reference, pointing to a location outside of the app, starting with "../".
Relative reference, pointing to a location within the app, starting with any file or folder name below
the root folder of the app.
The launchpad ensures that relative references are relative to the location of the Component.js file (not
relative to the location of the HTML file displayed by the web browser). This is consistent with the behavior
for other references in component metadata, for example the includes property.
Example
The example below illustrates how the component.js file in an SAPUI5 app may look:
sap.ui.core.UIComponent.extend("mycompany.abc.Component", {
metadata : {
name: "Sample Component",
library : " mycompany.abc",
includes : [
"css/style.css"
],
dependencies : {
},
config : {
"resourceBundle" : "i18n/i18n.properties",
"titleResource" : "shellTitle",
// The following properties reference dedicated image files. Note
// that relative links are always relative to the location of the
// Component.js of the app, NOT to the location of the HTML file that
// is displayed in the web browser (typically: FioriLaunchpad.html).
"favIcon" : "img/favicon.ico",
"homeScreenIconPhone" : "img/57_iPhone_Desktop_Launch.png",
"homeScreenIconPhone@2" : "img/114_iPhone-Retina_Web_Clip.png ",
"homeScreenIconTablet" : "img/72_iPad_Desktop_Launch.png",
"homeScreenIconTablet@2" : "img/144_iPad_Retina_Web_Clip.png",
}
},
(...)
});
10
Related Content
You must include at least 3 references to SCN documents.
Extending a Fiori App Simple Use case Part 3
SAPUI5 Components
Application Best Practices
11
Copyright
2014 SAP SE SE or an SAP SE affiliate company. All rights reserved.
No part of this publication may be reproduced or transmitted in any
form or for any purpose without the express permission of SAP SE.
The information contained herein may be changed without prior notice.
Some software products marketed by SAP SE and its distributors contain proprietary software components
of other software vendors. National product specifications may vary.
These materials are provided by SAP SE and its affiliated companies (SAP SE Group) for informational
purposes only, without representation or warranty of any kind, and SAP SE Group shall not be liable for
errors or omissions with respect to the materials. The only warranties for SAP SE Group products and
services are those that are set forth in the express warranty statements accompanying such products and
services, if any. Nothing herein should be construed as constituting an additional warranty.
SAP SE and other SAP SE products and services mentioned herein as well as their respective logos are
trademarks or registered trademarks of SAP SE in Germany and other countries.
Please see
http://www.sap.com/corporate-en/legal/copyright/index.epx#trademark
12