Mit SAP Fiori hat SAP den Schritt gewagt, der klassischen SAP GUI den Rücken zu kehren und die Benutzeroberflächen der SAP-Lösungen zu revolutionieren. Wie SAP Fiori mittels moderner Apps dabei hilft, Komplexität zu eliminieren und Effizienz im Arbeitsalltag zu erhöhen, haben wir bereits in SAP Fiori und SAP S/4HANA: Moderne Benutzeroberfläche für effiziente SAP-Prozesse aufgezeigt.
Wer an der Einführung von Fiori-Apps im eigenen Unternehmen interessiert ist, stößt allerdings schnell auf die Herausforderung, diese Apps mithilfe des SAPUI5 Javascript-Frameworks zu entwickeln, obwohl das dafür notwendige Knowhow in der Webentwicklung im eigenen Unternehmen möglicherweise nicht ausreichend vorhanden ist. Und selbst wenn entsprechende Kenntnisse vorliegen, werden interessierte Entwickler rasch von der Realität der Komplexität der klassischen „Freestyle“-Entwicklung mittels SAPUI5 eingeholt. Glücklicherweise gibt es neben der Freestyle-Entwicklung auch die Möglichkeit, Fiori-Apps mithilfe des Fiori Elements-Frameworks zu erstellen, ohne dabei zwangsweise komplexen Code schreiben zu müssen.
Der folgende Beitrag zeigt auf, welche Bestandteile bei der Erstellung einer App mittels Fiori Elements zusammenspielen, wo die Stärken dieses Entwicklungsansatzes liegen und an welchem Punkt Fiori Elements an seine Grenzen stößt und der Freestyle-Entwicklung unterlegen ist.
Die Entwicklung von Fiori-Apps in Fiori Elements basiert im Wesentlichen auf den folgenden 5 Bausteinen:
OData-Services (V2 oder V4) stellen das Datenfundament aller Fiori Elements Apps dar. Mittels OData-Services wird die Kommunikation zwischen dem Backend (in der Regel CDS-Views im SAP S/4HANA-System) und dem Frontend - der App - sichergestellt. Eine Kommunikation über andere Schnittstellenformate ist nicht möglich. Zudem kann einer App grundsätzlich nur ein OData-Service als Datenquelle zugeordnet werden.
Annotationen auf Ebene der CDS-Views werden über den OData-Service an das Frontend übermittelt und beeinflussen die Darstellung der App. Semantische Annotationen, wie beispielsweise die Ausweisung von Währungen oder Adressen sowie Annotationen zur Filterung und Bereitstellung einer Wertehilfe können in der CDS-View bereitgestellt werden, um so die konsumierende App um weitere semantische Informationen anzureichern.
Floorplans, also Baupläne oder Grundrisse sind ein zentrales Entwicklungsartefakt bei der Entwicklung mit Fiori Elements. Fiori Elements stellt verschiedene Floorplans als Schablonen bereit, mit deren Hilfe auf Knopfdruck Standard-Apps erzeugt werden können. Floorplans gibt es u.a. für Overview Pages, Analytical List Pages und Object Pages, die dem SAP-Standard entsprechen.
Mit den Floorplans ist sichergestellt, dass die Strukturen von Standard-Apps binnen Minuten statt Stunden erstellt werden können. In den meisten Fällen möchten wir jedoch eine App, die über diese simple Standard-Struktur hinausgeht. Dafür bieten die SAP Fiori Tools grafische Hilfsmittel wie das sog. „Guided Development“, um weitreichende zusätzliche Konfiguration hinsichtlich der Business-Logik und der Darstellung vorzunehmen. Die Tools erstellen dabei die dazu notwendigen Annotations- und Code-Fragmente und fügen diese auf Wunsch auch direkt ein.
Für den Fall, dass der Modellierungsumfang der zuvor genannten Tools für die eigene App nicht ausreichend ist, hat SAP zusätzlich Abhilfe geschaffen. Dank des „Flexible Programming Model“ ist es in SAP Fiori Elements mittels „Custom Pages“ und „Extension Points“ möglich, die Stärken von Fiori Elements mit den Vorzügen der Freestyle-Entwicklung zu verknüpfen. Bei der Erstellung einer „Custom Page“ wird Boilerplate-Code zur Integration und für das Routing der maßgeschneiderten Seite mit der restlichen Fiori-App bereitgestellt. Zudem stellt Fiori Elements „Building Blocks“ bereit, um häufig verwendete Elemente wie Tabellen oder Filterleisten auch in der code-basierten Entwicklung möglichst einfach und nah am SAP-Standard zu integrieren. Abgesehen von diesen mitgelieferten Funktionen ist der Entwickler aber dann weitestgehend auf sich allein gestellt und kann nach Belieben entwickeln.
Wenn die Geschäftsanforderungen zum Framework passen, bietet Fiori Elements massive Vorteile gegenüber der Freestyle-Entwicklung:
Trotz der mächtigen, umfassenden Modellierungsmöglichkeiten stößt auch Fiori Elements an seine Grenzen. Die folgenden Punkte sollten beim Einsatz von Fiori Elements unbedingt bedacht werden:
Fiori Elements hat klare Stärken, stößt je nach Szenario aber an seine Grenzen. Bei der Entscheidung, ob Fiori Elements im eigenen Unternehmen zur Entwicklung von Fiori-Apps eingesetzt werden soll, müssen diese Vor- und Nachteile dringend abgewogen werden. Unabhängig davon hängt der Projekterfolg zusätzlich davon ab, Fallstricke zu vermeiden und die verfügbaren Tools so effektiv wie möglich einzusetzen. Hier sind zusätzliche Best Practices, die eine erfolgreiche App-Entwicklung mit Fiori Elements fördern:
Frühzeitiger Anforderungs-Check:
Wie in allen Projekten, ist auch bei der Entwicklung von Fiori-Apps das Anforderungsmanagement nicht zu vernachlässigen. Erst wenn die Anforderungen bekannt sind, kann eingeschätzt werden, ob die Entwicklung mittels Fiori Elements zielführend oder ob der Modellierungsumfang von Fiori Elements für den konkreten Anwendungsfall zu einschränkend ist.
Wenn möglich, ausschließlich auf OData V4 Services zugreifen:
Auch wenn die älteren V2-Services noch unterstützt werden, sollte immer ein V4-Service genutzt werden, da nur so der Zugriff auf die Vorteile des Flexible Programming Model gegeben ist. Komplexere Erweiterungen unter V2-Services sind um ein Vielfaches aufwendiger zu implementieren.
„Backend-First“ bei Annotationen:
Um Wiederverwendbarkeit und Übersichtlichkeit sicherzustellen, sollten Annotationen immer so tief wie möglich, also in den CDS-Views der OData-Services, angelegt werden. Viele Annotationen können zwar auch im Frontend angelegt werden und die Backend-Annotationen übersteuern, dennoch sollte man im Frontend nur für app-spezifische Einstellungen davon Gebrauch machen.
Entwickler, die zum ersten Mal in die SAP Fiori-Welt eintauchen, profitieren von der geführten Entwicklung mit Fiori Elements maßgeblich. Fiori Elements senkt die Eintrittshürde, indem Schablonen für Standard-Apps bereitgestellt werden, die zusätzlich um weitere Business-Logik erweitert werden können, ohne dass dafür fortgeschrittene Coding-Kenntnisse nötig sind. Für etwas erfahrenere Entwickler ist es überdies möglich, an speziell dafür vorgesehenen Erweiterungspunkten eigenen Code zu platzieren. So sorgt Fiori Elements dafür, mit den Tools des Frameworks eine beachtliche Bandbreite an App-Anforderungen abzubilden, ohne dabei für alle Use Cases tiefes Expertenwissen vorauszusetzen. Für die Entwicklung hochkomplexer Apps, die stark von den definierten Schablonen abweichen, ist die reine Freestyle-Entwicklung jedoch weiterhin unabdingbar.
Sie sind an der Einführung eigener Fiori-Apps in Ihrem Unternehmen interessiert? Wir unterstützen Sie gerne – von der Auswahl des passenden Entwicklungsansatzes bis zur Umsetzung.
Wir freuen uns über Ihre direkte Kontaktaufnahme!