BTP - Fiori Elements App (Deployment)
In diesem Artikel kümmern wir uns Deployment der Fiori Elements App ins ABAP Environment und die Einrichtung der Berechtigungen.
Inhaltsverzeichnis
Dieser Artikel ist der zweite Teil zur Erstellung von Fiori Elements Apps und wird sich vor allem mit dem Deployment und dem ABAP Environment befassen. Er knüpft an den Artikel von letzter Woche an.
Deployment
Die App ist nun für das Deployment vorbereitet. Um nun das Deployment auf das System zu starten, benötigen wir ein Terminal, um den Befehl abzusetzen.
Da das Terminal aber wahrscheinlich noch auf dem Projekt steht, müssen wir den Ordner wechseln und auf die Fiori App wechseln:
Nun können wir mit dem Deployment starten, dazu tragen wir in das Terminal "npm run deploy" ein. NPM ist das NodeJS Framework, das im Hintergrund läuft und die nächsten Schritte für uns übernimmt. Danke der angelegten Deployment Konfiguration, läuft so weit alles automatisch. Die App wird im ersten Schritt fertig gebaut, dann werden wir noch einmal gefragt, ob wirklich mit dem Deployment gestartet werden soll und ob die angegebenen Daten so weit korrekt sind.
Mit der Eingabe von "Y", wird das Deployment gestartet und dauert nun eine kurze Weile. Mit einer hoffentlich positiven Meldung wird das Deployment abgeschlossen und wir erhalten noch einmal eine kurze Zusammenfassung und wo die App nun erreichbar ist.
ABAP Environment
Die Arbeiten im Business Application Studio sind nun so weit abgeschlossen und die App ist im ABAP Environment vorhanden. Wenn du nun das Paket prüfst, sollten sich zwei neue Objekte darin befinden, einmal die BSP Applikation (die App und die dazugehörigen Ressourcen) und einmal die Fiori Launchpad Konfiguration zur Einbindung der App in das FLP des ABAP Environment.
IAM App
Auf dieser Grundlage können wir nun die Berechtigungen und Objekte anlegen. Im nächsten Schritt generieren wir eine IAM App, ein Berechtigungsobjekt für die Fiori App. Dazu auf das Fiori Paket per Rechts-Klick gehen und "New -> Other ABAP Repository Object" wählen. Dort kannst du nach dem Objekt suchen:
Der Name des Objekts ist dabei nicht relevant und kann nach Belieben angepasst werden. Wichtig ist die Endung _EXT die bereits vorgeschlagen wird. Für die Business Configuration gibt es noch eine andere Art von Objekt. In unserem Fall sieht es wie folgt aus:
Nach Anlage des Objekts musst du das Launchpad App Descriptor Item hinterlegen, dies ist immer das Objekt mit _UI5R am Ende. Wenn der Punkt hinterlegt wurde, dann taucht unter dem Reiter Service unser OData Service auf.
Unter dem Reiter "Authorization" müssen noch Berechtigungen auf die Tabelle der App gegeben werden, damit die App später die Berechtigungen zum Ändern der Daten hat. Die Berechtigungen werden über das Objekt S_TABU_NAM vergeben, die finalen Werte sehen wie folgt aus:
Nachdem die Daten nun vollständig hinterlegt sind, kannst du mit einem Klick auf den Button "Publish Locally" die App für das Launchpad freigeben. Ohne die Freigabe kann es sein, dass die App nicht gefunden wird.
Business Katalog
Nachdem die IAM App nun vollständig angelegt und freigegeben wurde, muss noch ein Business Katalog angelegt werden. Dieses Objekt wird am Ende zur Erstellung von Rollen verwendet und enthält die eigentlichen Berechtigungen. Die Anlage kannst du manuell vornehmen oder du klickst in der IAM App auf dem Reiter Overview den Link "Create a new Business Catalog and assign the App to it", dies ist der einfachste Weg.
Nach dem Business Katalog wird auch automatisch ein App Assignment Objekt generiert. Im Business Katalog sollte auch schon unsere App (mit _EXT) verknüpft sein. Der Katalog kann mehrere Apps enthalten, wenn sie logisch zusammengehören und gemeinsam berechtigt werden. Hier ebenfalls den Button "Publish Locally" drücken, damit der Katalog im Launchpad freigegeben wird.
Hinweis: Ist die App oder der Business Katalog im Launchpad nicht sichtbar, noch einmal den Publish-Button betätigen, dann hat die Freigabe vielleicht nicht sauber funktioniert.
Objekte
Nachdem alle Objekte und Berechtigungen angelegt wurden, sollten nun die folgenden Objekte im Fiori Paket zu sehen sein:
Fiori Launchpad
Damit sind alle Vorarbeiten im ABAP Environment abgeschlossen und wir können die Rolle im Fiori Launchpad des ABAP Environments bauen. Dazu gehen wir ins Launchpad und rufen die App "Maintain Business Roles" auf.
Über den "New" Button legen wir eine neue Rolle im System an. Dieser können wir den Business Katalog zuordnen und dann die Rolle den entsprechenden Usern geben, die mit der App arbeiten sollen.
Hinweis: Die "Access Category" sollte für "Write, Read. Value Help" noch auf unrestricted gesetzt werden, damit haben die User die vollen Berechtigungen auf die App.
Nach der Zuweisung am besten noch einmal neu am System anmelden, damit die neuen Berechtigungen gezogen werden. Über den App Finder kann die App dann gefunden und auf dem Homescreen eingerichtet werden:
Dank der Übersetzung der i18n, funktioniert die App dann auf Englisch und auf Deutsch, sowie alle Sprachen, die bei der Übersetzung berücksichtigt wurden:
Nachhaltigkeit
Jetzt haben wir die App generiert und im System zur Verfügung gestellt, was einige Schritte waren. Wie sieht es nun mit der Nachhaltigkeit der App aus? Wann muss ein neues Deployment erfolgen? Die Antwort ist relativ einfach, viele Änderungen werden automatisch übernommen und sind nicht an die Fiori Elements App gebunden. Somit muss in den seltensten Fällen die App neu zur Verfügung gestellt werden, im Großteil betrifft das:
- Neue Navigation bzw. neue Entität
- Änderung der Kachel-Texte oder Ikone
- Erweiterung der App außerhalb von Fiori Elements
In allen anderen Fällen, wie zum Beispiel neue Felder in den Entitäten, geänderte Texte, geänderte Detailbilder, muss keine App neu deployed werden. Diese Änderungen werden einfach in das Fiori Elements Skelett übernommen. Sehr praktisch für den ABAP Entwickler.
Fazit
Für das Deployment sind noch einige Schritte notwendig und die Nacharbeiten im ABAP Environment nicht zu vernachlässigen. Doch wenn das Konstrukt einmal steht und eingerichtet wurde, müssen kaum noch Anpassungen vorgenommen werden.