
027: Recycling-Heroes - Business Configuration (Settings)
Wir benötigen im nächsten Schritt eine Business Configuration, um unsere Einstellungen in den verschiedenen Anwendungen dynamisch steuern zu können. Dazu passen wir den View an und kümmern uns um die Berechtigungen.
Inhaltsverzeichnis
Einleitung
In dieser Folge schauen wir uns die Business Configuration an, generieren die Tabelle und verschiedene Hilfsviews, um die Konfiguration über ein Fiori UI zu pflegen.
Tabelle
Dazu legen wir im ersten Schritt die eigentliche Tabelle an, die wir nach dem Datenmodell anlegen. Das Datenmodell findest du auf der Übersichtsseite zu den Recycling-Heroes in der Videobeschreibung. Legen wir uns dazu die Tabelle über das Kontextmenü des Project Explorers an. Die "Configuration ID" legen wir als Schlüssel an, ordnen jeder Konfiguration einen Prozess zu und haben jeweils einen Wert und einen hohen Wert. Damit können wir im System verschiedene Einstellungen pflegen, die wir später in unseren Prozessen verwenden wollen.
Haben wir dann alle Felder in der Tabelle definiert, legen wir die entsprechenden Datenelemente und Domänen im System an. Per Vorwärtsnavigation können wir die Elemente ganz leicht anlegen. Im Falle der Konfiguration, wollen wir direkt einige Werte definieren, die wir auch später im Prozess verwenden werden. Hier definieren wir Werte, ob APIs im System aktiv sind, verschiedene Defaultwerte und Modifikatoren für Defaultwerte. Sind wir mit der Definition fertig, aktivieren wir die Elemente.
Im nächsten Schritt definieren wir den Prozess und legen auch hier Datenelement und Domäne an, da wir Festwerte in der Domäne anlegen wollen. Dort definieren wir die verschiedenen Module unserer Lösung. Beim Wert benötigen wir die Domäne, da wir Groß- und Kleinschreibung unterstützen wollen. Im Falle des Wertes verwenden wir das gleiche Datenelement für beide Felder und passen später den Text über das UI an.
Vor der Aktivierung passen wir noch die Auslieferungsklasse und die Datenpflege der Tabelle an. Für den Business Configuration Generator muss die Tabelle auf Customizing eingestellt werden und die Pflege erlaubt werden. Damit können wir die Tabelle aktivieren und mit dem nächsten Schritt weitermachen.
Generator
Für die Generierung des Pflege Stacks verwenden wir den Generator für das "Business Configuration Maintenance Object". Hierdurch wird der komplette RAP Stack im Singleton Pattern für uns zur Verfügung gestellt. Wählen wir zuerst das gleiche Paket wie die Tabelle, wo später alle Objekte generiert werden. Beim nächsten Schritt müssen wir alle Einstellungen im Generator vornehmen. Dazu deaktivieren wir die Transporteinstellungen und passen die Namen für die verschiedenen Objekte an. Weitere Informationen zur Business Configuration, deren Erstellung und Anpassung, hängen wir in die Beschreibung des Videos.
Sind wir mit den Einstellungen fertig, dann erhalten wir eine Übersicht der Objekte die im System generiert werden. Mit Next werden alle Objekte angelegt, das kann eine Weile dauern. Sobald der Generierungsvorgang abgeschlossen wurde, erhalten wir ein Popup und können auf das Maintenance Objekt navigieren. Dann müssen wir auf jeden Fall den Service aktivieren, damit die Entität in der App auftaucht und pflegbar ist.
Berechtigung
Testen wir die Pflege und gehen dazu ins Launchpad, um die Anwendung "Custom Business Configurations" zu starten. In der Entwicklungsumgebung sehen wir alle angelegten Pflegeobjekte und können nach unserer neuen Pflege suchen. Wenn wir den Eintrag wählen und diesen laden, werden wir feststellen, dass wir keine Berechtigungen haben in den Edit-Modus zu gehen. Daher müssen wir im ersten Schritt die Berechtigungen anlegen.
Dazu legen wir uns im FIORI Paket eine neue IAM App an, um die Berechtigungen zuzuordnen. Als Typ müssen wir eine Business Configuration hinterlegen. Dafür gehen wir auf den Reiter Service und hinterlegen den neuen OData Service in dem Entwicklungsobjekt. Um die passenden Berechtigungen zuzuordnen, wechseln wir auf den Reiter "Authorizations" und fügen dort das Objekt S_TABU_NAM hinzu, damit wir Berechtigungen auf Tabellen und Core Data Services erteilen können.
Für die Tabelle benötigen wir im ersten Schritt die Leseberechtigungen für die Änderungsdokumente und dann noch einmal eine zweite Position zur Änderung und zum Lesen der Tabelle und des Core Data Services. Damit sollten wir alle Berechtigungen haben, um die Pflege durchführen zu können. Sind wir damit fertig, nicht vergessen über "Publish Locally" die Berechtigungen zu publizieren. Als letzten Schritt gehen wir in den Business Catalog und ergänzen die IAM App, damit der Admin später auch die Berechtigungen bekommt. Hier ebenfalls die Berechtigungen publizieren, damit wir im nächsten Schritt im Launchpad testen können.
Wechseln wir nun zurück zur App und aktualisieren einmal den Browser, um die Anwendung und die Berechtigungen erneut zu laden. Der Edit Button ist nun aktiv und wir können unseren ersten Eintrag pflegen. Beim Speichern erhalten wir aktuell die Fehlermeldung, dass wir einen Transport angeben müssen. Eigentlich haben wir die Pflege ohne Transport generiert, hier scheint es aktuell noch einen kleinen Bug zu geben. Daher passen wir im nächsten Schritt die Pflege an.
Transportanbindung
Nach Generierung des RAP Objekts, können wir dieses frei anpassen und erweitern. Daher löschen wir nun alle Verbindungen zur Transportaufzeichnung aus dem Objekt. Beginnen wir im ersten Schritt mit der Verhaltensdefinition und entfernen die verschiedenen Bestandteile der Konfiguration in Form von Side Effects, Validierungen und Aktionen. Nach der Aktivierung können wir in die Implementierung gehen, um die Methoden dort zu entfernen. Wir können jedes Stück Code entfernen, wo wir nun eine Fehlermeldung erhalten, da dies die gelöschten Objekte sind. Erhalten wir keine Fehlermeldungen mehr, dann können wir die Klasse aktivieren.
Zum Abschluss entfernen wir noch die Buttons aus dem UI. Dazu gehen wir in den Core Data Service, da auf Ebene des Singleton die UI Annotationen sich direkt im View befinden. Dort entfernen wir alle Annotationen am Transportfeld, da wir diese nicht mehr benötigen.
Sind wir damit fertig, können wir zurück in die Fiori Anwendung gehen und diese einmal neu laden. Alle transportspezifischen Dinge sollten nun entfernt sein. Daher legen wir einen ersten Datensatz an und speichern diesen, was nun ohne Probleme funktioniert.
Wertehilfen
Definieren wir uns nun die neuen Wertehilfen, die wir dann bei der Pflege als Dropdown verwenden wollen. Im ersten Schritt definieren wir die Hilfe für die Konfiguration und verwenden eine View Entity dafür. Danach können wir den View erst einmal aufräumen, da wir unsere IDE Action verwenden, um den Join generieren zu lassen. Wir wollen eine Wertehilfe auf Basis eines Datenelements anlegen und geben den Feldnamen an, der als Alias im View generiert wird. Nach der Generierung wollen wir noch das Dropdown für das Feld aktivieren.
Die zweite Wertehilfe definieren wir ebenfalls auf Basis des Prozesses und nutzen dafür die gleichen Schritte wie schon für die Konfiguration. Bei der IDE Action können wir auch die Suchhilfe nutzen, um das passende Datenelement zu wählen.
Haben wir die beiden Views angelegt und formatiert, können wir die Business Configuration anpassen. Dazu ergänzen wir den View für die Konfiguration um ein zwei zusätzliche Assoziationen, um die Texte im View verfügbar zu machen. Dazu verbinden wir die ID und den Prozess im View. Im Anschluss definieren wir per Annotation die Wertehilfen am Feld. Die beiden Beschreibungen der Views verwenden wir, um statt dem Schlüssel den Text im UI zu sehen. Über das Arrangement sehen wir am Ende nur noch den Text. Sind wir damit fertig, können wir die Überschrift des zweiten Value Feldes anpassen, um einen Unterschied bei den Feldern sichtbar zu machen.
Sind wir damit fertig, müssen wir noch die zwei Core Data Services in der Service Definition ergänzen, damit wir sie dann später verwenden können. Bevor wir dann das UI testen können, schauen wir uns noch einmal das Service Binding an, hier gibt es noch einen Fehler, da wir die Feldstruktur auf Ebene des Interfaces angepasst haben. Hier sollten wir die Draft Tabelle noch einmal neu generieren.
Zusammenfassung
Damit ist die Tabellenpflege abgeschlossen und wir können die Werte in der App pflegen. Hier scheint es allerdings noch ein kleines Problem bei der Anzeige der Texte zu geben, zumindest, solange die Werte noch neu sind. Grundsätzlich funktioniert es nach dem Speichern der Werte. Damit können wir später die Einträge pflegen, ohne ein eigenes UI deployen zu müssen, was uns Komplexität spart. Damit wäre wir am Ende der Folge und würden uns beim nächsten Mal um die API kümmern.
Danke fürs Zuschauen und bis zum nächsten Mal.
YouTube
Video