0% found this document useful (0 votes)
65 views

Customizing Guide - Launchpad - 7.4 (5.19.0) - en

Uploaded by

Zeyad Hossam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views

Customizing Guide - Launchpad - 7.4 (5.19.0) - en

Uploaded by

Zeyad Hossam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

SAP Store Device Control by GK

End-User Documentation: Launchpad – Customizing Guide – Launchpad

Customizing Guide – Launchpad

Version: 7.4 (5.19.0)


Copyright
© 2021 SAP SE or an SAP 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 or an SAP affiliate company.

1. You may not use the SAP Material for a purpose competitive with SAP or its products unless otherwise
clearly permitted by applicable law.
2. You may not use the SAP corporate logo.
3. No use of other SAP trademarks is granted under this section. For information regarding use of SAP
trademarks, see http://www.sap.com/corporate/en/legal/trademark.html.

SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or
registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. All other product
and service names mentioned are the trademarks of their respective companies.
Customizing Guide – Launchpad III

Table of contents
1 Introduction .......................................................................................................................................................... 1
2 Configuration ....................................................................................................................................................... 1
2.1 Functionality ....................................................................................................................................................... 1
2.1.1 Functions in menu.xml ................................................................................................................................ 1
2.1.2 Order of Functions in menu.xml .................................................................................................................. 1
2.1.3 Automatic Logout ........................................................................................................................................ 2
2.2 Security ............................................................................................................................................................... 2
2.2.1 Authentication using LDAP ......................................................................................................................... 2
2.2.1.1 Preconditions ...................................................................................................................................... 2
2.2.1.2 The Authentication Service LDAP Credentials Verifier ....................................................................... 2
3 Configuration of Launchpad Apps .................................................................................................................... 3
3.1 Customization ..................................................................................................................................................... 3
3.1.1 MediaPanel App.......................................................................................................................................... 3
3.1.1.1 Enable Listener on Omnichannel Point-of-Sale .................................................................................. 3
3.1.1.2 Content Upload Function for Uploading Images for the MediaPanel App .......................................... 3
4 Configuration of Launchpad Translation Service ............................................................................................ 5
4.1 Introduction ......................................................................................................................................................... 5
4.2 Translation Package ........................................................................................................................................... 5
4.2.1 Translation Package Location .................................................................................................................... 6
4.3 Launchpad Configuration ................................................................................................................................... 7
5 Launchpad Remote App ..................................................................................................................................... 8
5.1 Introduction ......................................................................................................................................................... 8
5.2 Usage ................................................................................................................................................................. 8
5.3 Portal Applications in Launchpad ....................................................................................................................... 8
Customizing Guide – Launchpad 1

1 Introduction
This document describes the configuration of the Launchpad.

2 Configuration
2.1 Functionality
2.1.1 Functions in menu.xml
It is configurable where the function call of an App will be located in the Launchpad menu.

Example

<menu
caption="${customization}"
id="customisation_menu_id">
<node
caption="${customization.editors}"
id="editors_node"
type="title">
<function
id="dsg-content-upload"
caption="${upload_images_media_panel.caption}"...

2.1.2 Order of Functions in menu.xml


If hidden functions should be used in a node configuration in the file menu.xml , they must be inserted after the
visible functions at the end of the function list and NOT in between , e.g.:
2 Customizing Guide – Launchpad

<node id="stock_taking_title_node_id" caption="${stock_taking_title_node.caption}" type="title">


<function id="S.05300600002.00" caption="${create_counting_area.caption}" ... >
<function id="S.05300600014.00" caption="${create_perpetual_stock_taking_function.caption}" ...
<parameters>
<parameter name="mode" value="STOCK_TAKING_MODE"/>
</parameters>
</function>
<function id="S.05300600004.00" caption="hidden" ... hidden="true"/>
<function id="S.05300600005.00" caption="hidden" ... hidden="true"/>
</node>

2.1.3 Automatic Logout


There is a configurable timeout after which an automatic logout is performed in the event of user inactivity. Before
logging out, a warning dialog is shown in which there is a button to cancel the logout. The amount of time for which
the dialog is shown is also configurable.

frontend-configuration.properties:

# Inactivity timeout until warning dialog is shown (in seconds)


autoLogout.inactivityWarningShownTimeout=300
# Time how long the warning dialog is shown (in seconds)
autoLogout.logoutAfterWarningOffset=30

2.2 Security
2.2.1 Authentication using LDAP
In addition to the standard option where user credentials are stored in the database, User Management 2 also
supports LDAP authentication. This means that the application connects to the configured LDAP server and
validates whether the user with the specified user name and password exists. The authentication method (LDAP,
DB) can be changed in the configuration. Please note that Search and Bind are currently the only supported LDAP
protocol operations. The LDAP access can be limited to read-only.

2.2.1.1 Preconditions
• The worker/operator is stored in the SES database and the login name in the database must match the
login name in LDAP (there is no import from LDAP)
• The operator to workgroup and operator to store mapping is managed in the SES database (no
workgroups/user roles are imported from LDAP)
• The password stored in the SES database is not used for authentication (just the user name)
• Optional: If LDAP anonymous access is not allowed, a manager account can be configured

2.2.1.2 The Authentication Service LDAP Credentials Verifier


The LDAP Credentials Verifier has to be activated and correctly configured in the Launchpad configuration.
If OAuth is used, which is the default, LDAP has to be activated and correctly configured in the Authentication
Service configuration as well.

The configuration is the same in both systems.

security.properties:
Customizing Guide – Launchpad 3

# Authentication Provider type:


# UM - UserManagement 2
# LDAP - combination of UM and LDAP Credentials Verifier
core.common.security.server.oauth2.ap.type=LDAP

Afterwards, there is the LDAP Credentials Verifier configuration in the same file.

#####################################
# LDAP Credentials Verifier Config #
#####################################

# REQUIRED: The url used to connect to main LDAP server. It is composed of the LDAP host addresss, port and a
domain identification (domain component - e.g. company web domain)
core.common.security.server.credentials-verifier-ldap.server.url=
# fallback url is used to connect to backup LDAP server. Use the same format as for main server url
core.common.security.server.credentials-verifier-ldap.server.fallbackUrl=

# userSearchBase is a LDAP Context name to search in, relative to the base of the configured url, example
ou=ES-Users,OU=Benutzer
core.common.security.server.credentials-verifier-ldap.server.userSearchBase=
# The filter expression used in the user search. This is an LDAP search filter with optional argument that
will be substitued by a user login name
# Example: (uid={0}) - this would search for a username match on the uid attribute.
core.common.security.server.credentials-verifier-ldap.server.userSearchFilter=

# manager login name and password setting will not execute the bind operation anonymously, leave the following
properties empty when anonymous access is required, example cn=manager,dc=springframework,dc=org
core.common.security.server.credentials-verifier-ldap.server.managerDn=
core.common.security.server.credentials-verifier-ldap.server.managerPassword=

3 Configuration of Launchpad Apps


3.1 Customization
3.1.1 MediaPanel App
3.1.1.1 Enable Listener on Omnichannel Point-of-Sale

The following configuration is necessary so that the images configured in the MediaPanel Editor can also be
updated on the customer display during cash register operation.

clientSystem.properties:

SystemConfig.configChangeListenerEnabled=true

3.1.1.2 Content Upload Function for Uploading Images for the MediaPanel App

To use the Content Upload App specifically to upload images required by the MediaPanel App, the function
configuration must be adjusted in the menu.xml.

Example:
4 Customizing Guide – Launchpad

<urls>
<url id="dsg-application-context" value="dsg" />
<url id="dsg-api-context" value="services/rest/media/v1" />
<url id="dsg-resources-path" value="image" />
<url id="dsg-sub-path" value="customer/panels" />
<url id="dsg-default-folders"
value="welcomeMediaPanel,breakMediaPanel,posclosedMediaPanel,registrationMediaPanel1,paymentMediaPanel1" />
<url id="dsg-extensions" value="png,jpg,jpeg" />
</urls>

<menu
caption="${customization}"
id="customisation_menu_id">
<node
caption="${customization.editors}"
id="editors_node"
type="title">
<function
id="dsg-content-upload"
caption="${upload_images_media_panel.caption}"
applicationUrl="${server}/${sdc-application-
context}/tenants/${tenantId}/stores/${storeId}/ui5-functions/content_upload/"
applicationId="com.gk_software.gkr.editor.content_upload"
icon="${server}/${sdc-application-context}/tenants/${tenantId}/stores/${storeId}/ui5-
functions/content_upload/icon/content_upload.svg">
<parameters>
<parameter name="dsgUrl" value="${server}/${dsg-application-context}"/>
<parameter name="apiPath" value="${dsg-api-context}"/>
<parameter name="resourcesPath" value="${dsg-resources-path}"/>
<parameter name="subPath" value="${dsg-sub-path}"/>
<parameter name="createDefaultFolders" value="${dsg-default-folders}"/>
<parameter name="extensions" value="${dsg-extensions}"/>
<parameter name="maxFileSize" value="2"/>
<parameter name="maxFileNameLength" value="64"/>
<parameter name="showThumbnail" value="true"/>
<parameter name="allowFolderMaintenance" value="false"/>
<parameter name="pagingLimit" value="200"/>
</parameters>
</function>
</node>
</menu>

Automatically Generated Folders and Disabling Maintenance of the Folder Structure

For the MediaPanel Editor, there must be a separate directory for each panel on the DSG in which the
corresponding images are stored. After selecting the desired panel, the MediaPanel Editor only shows the content
of the folder with the same name on the DSG for image selection.

Therefore, the configuration <parameter name="createDefaultFolders" value=""> is of vital importance.

Enter the name of the folder to be created automatically here. The folder names must correspond to the names of
the panels in mediaPanel.properties.

In addition, set <parameter name="allowFolderMaintenance" value="false"/> to ensure that the user cannot create
their own folders or edit or delete the automatically generated folders. This would result in the MediaPanel Editor
no longer being able to display images for selection.

Configuration of the Directories on the DSG

So that the Content Upload App uses the same directories and file extensions to upload the images for the
MediaPanel Editor as those used by the MediaPanel Editor to select the images, the following parameters must
have the same value. For this reason, variables have been defined that you should use as parameter values.
Customizing Guide – Launchpad 5

Function parameter in Function parameter in Value with corresponding variable

dsg-content-upload dsg-content-selection

dsgURL dsgURL value="${server}/${dsg-application-context}"


resourcesPath resourcesPath value="${dsg-resources-path}"
subPath subPath value="${dsg-sub-path}"
createDefaultFolders panelsShowInEditor value="${dsg-default-folders}"
extensions extensions value="${extensions}"

The variables themselves are defined by the element <url> in the menu.xml, see the example in the chapter
Content Upload Function for Uploading Images for the MediaPanel App.

4 Configuration of Launchpad Translation Service


4.1 Introduction
This guide describes how to configure the Translation Service in GK Launchpad.

It is possible to prepare packages with custom translations to be used by Launchpad. A prepared ZIP archive with
the translations will be uploaded to web storage (for example: DSG repository) and the URL for this package is
provided to Launchpad in the configuration. Launchpad downloads the package to its file system and provides the
new custom translations to the front-end client (web browser) via API.

4.2 Translation Package


The translation package can be created for Launchpad itself, which will change the translations for core Launchpad
functions (login, navigation, etc.), or it can be created for the Launchpad Apps, which will change the translations of
specific functions (Drawer Maintenance, Tender Pickup, etc.).

The translation package must be a .ZIP archive with a specific structure. The default product translation package is
part of the Launchpad Apps build and is used as an example of what the translation package should look like.
6 Customizing Guide – Launchpad

translation-pack.zip
translation-pack.zip/accounting
translation-pack.zip/accounting/automatic_day_end_closing
translation-pack.zip/accounting/automatic_day_end_closing/i18n
translation-pack.zip/accounting/automatic_day_end_closing/i18n/resources.properties
translation-pack.zip/accounting/automatic_day_end_closing/i18n/resources_ar.properties
translation-pack.zip/accounting/automatic_day_end_closing/i18n/resources_ar_AE.properties
translation-pack.zip/accounting/automatic_day_end_closing/i18n/resources_ar_SA.properties
translation-pack.zip/accounting/automatic_day_end_closing/i18n/resources_bg.properties
translation-pack.zip/accounting/automatic_day_end_closing/i18n/resources_bg_BG.properties
translation-pack.zip/accounting/automatic_day_end_closing/i18n/resources_bs.properties
translation-pack.zip/accounting/automatic_day_end_closing/i18n/resources_bs_BA.properties
translation-pack.zip/accounting/automatic_day_end_closing/i18n/...
translation-pack.zip/accounting/bank_payment
translation-pack.zip/accounting/bank_payment/i18n
translation-pack.zip/accounting/bank_payment/i18n/resources.properties
translation-pack.zip/accounting/bank_payment/i18n/resources_ar.properties
translation-pack.zip/accounting/bank_payment/i18n/resources_ar_AE.properties
translation-pack.zip/accounting/bank_payment/i18n/resources_ar_SA.properties
translation-pack.zip/accounting/bank_payment/i18n/resources_bg.properties
translation-pack.zip/accounting/bank_payment/i18n/resources_bg_BG.properties
translation-pack.zip/accounting/bank_payment/i18n/resources_bs.properties
translation-pack.zip/accounting/bank_payment/i18n/resources_bs_BA.properties
translation-pack.zip/accounting/bank_payment/i18n/...
translation-pack.zip/accounting/change
translation-pack.zip/accounting/change/i18n
translation-pack.zip/accounting/change/i18n/resources.properties
translation-pack.zip/accounting/change/i18n/resources_ar.properties
translation-pack.zip/accounting/change/i18n/resources_ar_AE.properties
translation-pack.zip/accounting/change/i18n/resources_ar_SA.properties
translation-pack.zip/accounting/change/i18n/resources_bg.properties
translation-pack.zip/accounting/change/i18n/resources_bg_BG.properties
translation-pack.zip/accounting/change/i18n/resources_bs.properties
translation-pack.zip/accounting/change/i18n/resources_bs_BA.properties

Code Block 1 Translation Package Example

4.2.1 Translation Package Location


Translation packages must be uploaded to the DSG repository or an external repository that can be reached by
Launchpad.

To upload the packages to the DSG repository, the user can use the Launchpad function Software Packages in
the Installation & Update section.
Customizing Guide – Launchpad 7

The location of the translation package must be provided to Launchpad as part of the configuration. The user can
find the URL to the location of the translation package in the DSG repository from the hostname of the DSG server
and the location in the DSG structure.

Use the following pattern with the "../cep/.." interface.

The path needs to refer to the folder in the DSG structure that the translation package was uploaded to. It is
highlighted in red in the screenshot above.

https://<hostname>:<port>/app-dsg/content/cep/<path>

Example of the URL:

https://test01.gk-software.com:8443/app-dsg/content/cep/SoftwarePackage/translations/launchpad

4.3 Launchpad Configuration


The following parameters must be configured in Storemanager for the Launchpad application in Expert view.

• Open Storemanager and log in


• Go to System management → Main structure → Launchpad node
• Perform a change for the active version → Select Expert view
• Adapt the following parameters in their respective configuration files.
Parameter file Parameter Example value Note
app- applications launchpad,launchpad-apps Comma-separated list of applications to get preloaded translations.
translation-
service-
config.properti
es
variations.lau launchpad_translations Variations for each preloaded application - each application should have
nchpad a separate entry with comma-separated variants (example:
variations.lau launchpad-apps_translations variations.launchpad=en_GB,en_US,translator3)
nchpad-apps
The value must be the name of the ZIP archive without the suffix. So the
correct value for launchpad_translations.zip is
launchpad_translations
urls.launchpa https://test01.gk- • List of URLs for each application that specifies where to reach
d software.com:8443/app- the variation ZIPs, for example:
dsg/content/cep/SoftwarePackage/tra urls.launchpad=http://www.url1.com/translation_zips,http://ww
nslations/launchpad w.url2.com/translations_zips_upgraded
urls.launchpa https://test01.gk- • Not all URLs have to provide all of the variations (i.e. the first
d-apps software.com:8443/app- URL can provide all variation ZIPs and the second URL can
dsg/content/cep/SoftwarePackage/tra provide "en_US" only)
nslations/launchpad-apps
• All URLs are checked for all variations
frontend- translation.se https://test01.gk- Should refer to the internal translation service in Launchpad (e.g.
configuration.p rvice.url software.com:8443/gkr- https://wwww.server.com/launchpad/services/rest/translations/v1/files)
roperties launchpad/services/rest/translations/v
1/files
After configuration in Storemanager is finished, restart the Launchpad application. While Launchpad is starting,
the translation service component is initiated and downloads the translation packages to Launchpad's root
directory.
8 Customizing Guide – Launchpad

Launchpad checks for and downloads new packages at one hour intervals.

5 Launchpad Remote App


5.1 Introduction
A new component - RemoteApp - has been added to Launchpad. This component allows us to open remote
applications in iframe directly from the Launchpad menu. Now, there is no direct way of transferring data from
Launchpad to a called remote application and browser storage (cookies, local storage, etc.) is limited by the Same-
origin policy. Here is an explanation of the Same-origin policy.

5.2 Usage
We can simply add it into menu.xml in the same way as any other application node. We can add multiple remote
application components to the menu but we need a working resourceID for each component to be used.

Based on the configuration, the applicationUrl parameter sometimes needs the tenant/store
specification applicationUrl="/gkr-launchpad/tenants/${tenantId}/stores/${storeId}/app/remoteApp/".

<menu id="other_menu_id" caption="${other_menu.caption}">


<node id="3rd_party_node_id" caption="${3rd_party_node.caption}" type="title">
<function id="RemoteApp1"
caption="${custom_name.caption}"
applicationUrl="/gkr-launchpad/app/remoteApp/"
applicationId="com.gk_software.gkr.ui5.launchpad.remoteApp"
icon="https://remoteAppUrl.net/app/icon.svg">
<parameters>
<parameter name="remoteAppUrl" value="https://remoteAppUrl.net/app/"/>
</parameters>
</function>
</node>
</menu>

Code Block 2 RemoteApp

5.3 Portal Applications in Launchpad


Using RemoteApp allows us to run the Portal application directly from the Launchpad menu without having to log in
again. It is very import to observe the same-origin policy to pass the GK SSO token to iframe. Portal applications
can be run without displaying the Portal page, simply by addressing the Portal application directly.
Customizing Guide – Launchpad 9

<menu id="other_menu_id" caption="${other_menu.caption}">


<node id="portal_node_id" caption="${portal_node.caption}" type="title">
<function id="S.01320214001.00"
caption="${portal_app_name.caption}"
applicationUrl="/gkr-launchpad/tenants/${tenantId}/stores/${storeId}/app/remoteApp/"
applicationId="com.gk_software.gkr.ui5.launchpad.remoteApp"
icon="url_to_icon... portal does not have app icons">
<parameters>
<parameter name="remoteAppUrl" value="${server}/${pos-server-application-
context}/functions#S.01320214001.00"/>
</parameters>
</function>
</node>
</menu>

Code Block 3 RemoteApp


Contact
GK SOFTWARE SE
Waldstraße 7
08261 Schöneck
Germany

Tel.: +49 (0) 3 74 64 84 – 0


Fax: +49 (0) 3 74 64 84 – 15

Email: [email protected]
www.gk-software.com

You might also like