
Fiori für ABAP - Launchpad Configuration
Wieso legen wir eigentlich eine Launchpad Configuration an und wozu brauchen wir diese in unserer Fiori Elements App? In diesem Artikel schauen wir uns den Prozess und die möglichen Eigenschaften an.
Inhaltsverzeichnis
In diesem Artikel schauen wir uns die Launchpad Configuration an und was sie im Zielsystem nach dem Deployment bewirkt. Dazu schauen wir uns verschiedene Eigenschaften an.
Einleitung
Bisher hatten wir unsere Sales App in das ABAP Environment deployt. Dabei haben wir die Launchpad Configuration als Descriptor Item manuell angelegt. Doch wie sieht es eigentlich aus, wenn wir die App Richtung On-Prem bringen wollen? Je nach Release gibt es dort keine Launchpad App Descriptor Items, zumindest nicht zur manuellen Anlage. Dies ist erst in einem späteren Release möglich. Daher sollten wir einmal einen Blick auf die Launchpad Configuration werfen, die wir direkt bei der Anlage der App erzeugen oder auch später noch einmal konfigurieren können. Dabei schauen wir uns verschiedene Eigenschaften und Einstellungsmöglichkeiten an, die dir zur Verfügung stehen.
Anlage
Schauen wir uns zuerst die Anlage der Konfiguration zu zwei verschiedenen Zeitpunkten an.
Wizard
Der erste Weg, um die Grundkonfiguration anzulegen, ist direkt bei der Ausführung des Wizards zur Generierung der Fiori Elements Anwendung. Dabei muss im Konfigurationsschritt explizit die Konfiguration aktiviert werden, um einen zusätzlichen Schritt im Wizard freizuschalten. Im Screenshot unten ist ein Beispiel für die Launchpad Konfiguration und wie du den Schritt im Wizard aktivieren kannst.
Application Info
Ist die Anwendung bereits im System generiert? Dann kannst du auch über die Application Info den zusätzlichen Wizard noch einmal starten. Öffne dazu die Application Info und suche nach dem Punkt „for SAP Fiori Launchpad“. Über den blauen Button „Add“ kannst du dann den Wizard für diesen einzelnen Schritt noch einmal starten.
Im Wizard gibst du Grundeinstellungen mit, die für die Kachel später im Launchpad wichtig sind, so zum Beispiel den Titel und den Untertitel, damit die Kachel eine Beschriftung hat, sowie ein semantisches Objekt und eine Aktion. Das semantische Objekt und die Aktion sind wichtig für die Navigation innerhalb des Launchpads und bilden zusammen einen eindeutigen Schlüssel. Für das semantische Objekt kannst du jeden beliebigen Begriff verwenden, der deine Anwendung beschreibt. Als Aktion wird meistens so etwas wie Display oder Manage verwendet, was die eigentliche Aktion der Anwendung beschreiben soll, die mit ihr möglich ist.
Einstellungen
Durch das Ausführen des Wizards wird in der manifest.json nun ein entsprechender Punkt für die Cross-Navigation definiert. Dabei werden die Einstellungen, die du im Wizard gemacht hast, übernommen, entsprechende i18n-Einträge angelegt und noch zusätzliche Einstellungen hinterlegt.
Grundsätzlich wären wir damit mit der Einstellung für die Kachel fertig. Weiterhin stehen aber zusätzliche Eigenschaften und Einstellungen zur Verfügung, die wir nutzen können und die auch später in der Kachel angezeigt werden. Ähnlich wie beim Launchpad App Descriptor Item können wir so zum Beispiel auch eine Info mitgeben, die im unteren Teil der Kachel steht, ein eigenes Icon definieren, welches später auch als Icon verfügbar wird, oder auch eine sogenannte Indicator Data Source anlegen. Diese wird verwendet, um eine Zahl dynamisch auf der Kachel anzuzeigen. In diesem Fall verwenden wir als Data Source den Main-Service. Dieser verweist auf den mainService in der Manifest-Datei. Wir legen einen Pfad fest, in diesem Fall für die Entität und den Count, der berechnet wird, also die Anzahl der Verkäufe, die verfügbar sind, und definieren, dass alle 10 Sekunden ein Refresh der Kachel durchgeführt werden soll. Das bedeutet, im Launchpad wird alle 10 Sekunden ein Request abgesetzt, der schaut, ob die Zahl sich geändert hat, und diese auch aktualisiert.
"crossNavigation": {
"inbounds": {
"ZBS_DEMO_GSALE-manage": {
"semanticObject": "ZBS_DEMO_GSALE",
"action": "manage",
"title": "{{ZBS_DEMO_GSALE-manage.flpTitle}}",
"subTitle": "{{ZBS_DEMO_GSALE-manage.flpSubtitle}}",
"info": "... from the Manifest",
"icon": "sap-icon://travel-expense-report",
"indicatorDataSource": {
"dataSource": "mainService",
"path": "SASale/$count",
"refresh": 10
},
"signature": {
"parameters": {},
"additionalParameters": "allowed"
}
}
}
}
Damit kannst du auch direkt bei der Anlage der Konfiguration weitere Einstellungen mitgeben, die die Kachel etwas hübscher machen oder vielleicht sogar weitere Informationen direkt auf die Kachel bringen, sodass diese nicht erst sichtbar sind, wenn man die App lädt.
Deployment
Führen wir nun ein Standard-Deployment durch, dann wird ein Launchpad App Descriptor Item automatisch im System generiert. Am Ende findest du ein „_UI5R“ wieder. Dies deutet darauf hin, dass dies ein automatisch generiertes Item ist, welches wir auch nicht über den eingebauten Editor verändern können. Die Änderung ist ausschließlich über die Launchpad Configuration in unserer App möglich. Öffnen wir das Item, finden wir auch die entsprechenden Einstellungen wieder, die wir bereits in der App gemacht haben. So wurde unsere App ID automatisch hinterlegt und es wurde ein Target Mapping angelegt. Ebenfalls finden wir das semantische Objekt und die Aktion wieder, die wir bereits zuvor definiert haben.
Im unteren Teil wurde bereits auch eine Kachelkonfiguration angelegt und alle Werte hinterlegt, wie wir sie auch in der Anwendung definiert haben. Als Kacheltyp wurde eine dynamische Kachel gewählt, da wir einen Service hinterlegt haben, der die Zahl automatisiert nachladen soll. Alle Informationen wurden entsprechend in die Standard-Details übernommen und auch die Informationen für die dynamische Kachel wurden gesetzt. Dies entspricht im Grunde der Konfiguration, die wir entweder hier manuell durchführen können oder automatisiert über die Launchpad Configuration unserer Anwendung erhalten.
Vollständiges Beispiel
Die gespeicherten Ressourcen zu unserer Anwendung findest du in unserem GitHub Repository. Damit kannst du in Zukunft alle Anpassungen an der Fiori App mit nachvollziehen oder die Ressourcen für ein Deployment nutzen. Die aktuellen Änderungen findest du in diesem Commit wieder.
Fazit
Für die Launchpad Configuration steht dir normalerweise das Launchpad App Descriptor Item zur Verfügung, welches du in der ABAP Environment manuell anlegen kannst. Möchtest du deine Anwendung aber zum Beispiel auf ein On-Prem System deployen, dann kannst du je nach Release dieses Item vielleicht nicht manuell anlegen. Dafür gibt es auch die Möglichkeit, eine Launchpad Configuration in der manifest.json zu definieren und mitzudeployen. Im On-Prem System wird die Kachel dann einem technischen Standardkatalog zugeordnet.





