Unser Ziel ist eine qualitativ hochwertige Beratung und Entwicklung. Spezielle Herausforderungen erfordern spezielle Kenntnisse, Fähig- und Fertigkeiten unserer Teammitglieder. Diese Qualifikationen sind in unserer Belegschaft nicht gleich verteilt, vielmehr haben sich für unterschiedliche Kenntnisbereiche unterschiedliche SpezialistInnen entwickelt, was uns die Möglichkeit bietet einen großen Bereich an Kundenanforderungen abzudecken. Um einen strukturierten Überblick zu behalten und unser Team passgenau bei unseren Kunden vorstellen zu können, arbeiten wir seit Jahren mit Profilen. Profile erfassen für jede Arbeitskraft die individuellen Fähigkeiten, Informationen zu vergangenen und aktuell laufenden Projekten, sowie auch Beratungs- und Entwicklungsschwerpunkte.
Insbesondere der wachsende Headcount macht eine toolunterstützte Pflege und Suche der Profile unabdingbar. Neuste SAP-Technologien bieten die optimale Basis für eine maßgeschneiderte OctaVIA-Lösung. Hierfür wird OpenUI5 als Frontend und SAP CAP als Backend-Technologie eingesetzt. Das Ziel: Entwicklung einer Webanwendung, die eine komfortable Pflege und Verwaltung der Profile ermöglicht, sowie die Profilsuche so zu optimieren, dass binnen weniger Augenblicke passende Mitarbeiter/-profile nach entsprechenden Suchkriterien gefunden werden können.
Das Cloud Application Programming Model (CAP) ist ein Framework von SAP, welches SAP eigene wie auch Open Source Bibliotheken, Programmiersprachen und Tools bereitstellt. Mit Hilfe von SAP CAP können ohne weiteres Fullstack-Applikationen entwickelt werden, ein separates Projekt für das Frontend ist somit nicht zwingend nötig. Als Laufzeitumgebung setzen wir Node.js ein. Um Fehler möglichst schon zum Entwicklungszeitpunkt zu minimieren, wird zudem auf TypeScript gesetzt. SAP CAP bietet aber auch Support für Java als Laufzeitumgebung. Wir setzen unser Frontend mit OpenUI5 um und nutzen SAP CAP, für die Implementierung des Backends. Von der Initialisierung des Projekts, bis hin zum fertig modellierten RESTful und OData fähigen Backend Server, welcher an eine SQLite3 Datenbank oder ein S/4HANA System angeschlossen werden kann, sind es nur ein paar Handgriffe. Da SAP CAP dem domain-driven Design folgt, ist die Implementierung einzelner, wiederkehrender Aufgaben wie zum Beispiel CRUD-Anfragen senden und empfangen sowie die Einbindung von Core-Data-Services unnötig.
Abbildung 1: SAP CAP Übersicht, Quelle: https://blogs.sap.com/2022/03/20/introducing-cap-to-sap-commissions/
Hierzu ein Auszug der Funktionen:
Automatisches Bereitstellen von verschiedenen Diensten:
Umgang mit wiederkehrenden Aufgaben:
Best Practices:
OpenUI5 ist ein HTML5 Framework, welches die Entwicklung moderner Web-Anwendungen ermöglicht. Insbesondere der Einsatz und Support für mobile Endgeräte und allen gängigen Browsern ist hervorzuheben. OpenUI5 baut, wie andere Web-Frameworks auch, auf HTML, CSS und JavaScript auf. OpenUI5 folgt dem Model-View-Controller Designpattern (MVC) und bietet TypeScript Unterstützung an.
Die Views können in XML-, JSON-, JavaScript- (bzw. TypeScript) oder auch HTML-Datei erstellt werden. Diese beschreiben das User Interface (UI), enthalten also die für den Browser notwendigen Definitionen, wie die Benutzeroberfläche angezeigt werden soll. Das von uns gewählte XML-Format für die Views, erlaubt eine striktere Trennung zwischen UI und Programmlogik. Diese Trennung erleichtert die Arbeit der Entwickler durch eine bessere Lesbarkeit und Wartbarkeit des Codes, da die Funktionalität der Benutzeroberfläche abgekoppelt ist von dem Erscheinungsbild. Die Programmlogik wird in sogenannte Controller ausgelagert. Controller verbinden Views mit den Datenmodellen und sind in JavaScript/TypeScript Dateien definiert. Als Datenmodelle werden unter anderem OData, JSON und XML unterstützt. Die Kommunikation mit dem Backend ist dabei denkbar einfach: via OData-Datenbindung werden automatisch Anfragen an das Backend gesendet und die Antworten in die gebundenen Elemente geladen.
Abbildung 2: Übersicht der Architektur von Open UI5, Quelle: https://sdk.openui5.org/topic/ec699e0817fb46a0817b0fa276249f8
Abbildung 3: Open UI5 Anbindung der Datenmodelle an die View, Quelle: https://sdk.openui5.org/topic/68b9644a253741e8a4b9e4279a35c247
Der zentrale Unterschied zwischen SAPUI5 und OpenUI5 ist die Lizenzierung. OpenUI5 ist ein Open Source Projekt unter der Apache 2.0 Lizenz. OpenUI5 und SAPUI5 bieten generell dieselbe API an. Lediglich einige vorgefertigte Formulare, Diagramme, Steuerelemente und Analysetools gibt es nur bei SAPUI5 out-of-the-box. Die Grundfunktionalitäten sind bei beiden jedoch dieselben.
Ausgangslage für unser Beispiel ist das folgende Szenario: Für ein Kundenprojekt benötigen wir Expertise aus den Themengebieten SAP CAP, SAPUI5 und S/4HANA.
Also starten wir unseren Mitarbeiterprofilmanager und navigieren zur Profilsuche:
In der Profilsuche kann nach gewissen Kriterien gefiltert werden. So kann beispielsweise nach einzelnen oder mehreren Kompetenzen (Skills) und deren Ausprägungen gesucht werden (umfangreiches Wissen, mehrjährige Erfahrung oder Experte). Eine Suche nach einzelnen Mitarbeitern/bestimmten Profilen ist ebenfalls möglich. Auf der rechten Seite sind die Profilvollständigkeitsanzeigen zu sehen. Diese geben an, wie weit das jeweilige Profil gepflegt wurde. Bei einer Profilvollständigkeitsanzeige von 100% wird gewährleistet, dass dieses Profil vollständig und . Die Profilvollständigkeit berechnet sich u.a. daraus, ob in den Projekten alle Felder ausgefüllt sind, die letzte Profiländerung nicht älter als 6 Monate ist, Kategorien wie Branchenerfahrung, Zertifikate und Fremdsprachen gepflegt sind. Ein vollständig gepflegtes Profil erlaubt einen Export des Profils direkt aus der Web-Anwendung in ein Word-Dokument.
In unserer Anfrage sind die Skills SAPUI5, SAP CAP und S/4HANA gefordert, der Skills-Filter hilft eine Vorauswahl zu treffen.
Die zusätzliche Eingrenzung auf das Skill-Level Experte, verdichtet das Suchergebnis auf zwei – auf die kundenspezifische Anfrage – passende Mitarbeiter. Die Skill-Level teilen sich in umfangreiches Wissen (ein Stern), mehrjährige Erfahrung (zwei Sterne) und Experte (drei Sterne) auf.
In der Profildetailanzeige lassen sich Profile pflegen, exportieren sowie Neue anlegen. Die Profilpflege ist in vier Registerkarten aufgeteilt: Stammdaten, Kategorien, Skills und Projekte.
In der Registerkarte Stammdaten sind Detailinformationen zu der jeweiligen Arbeitskraft einsehbar. Hier können lediglich die Berufserfahrung und der akademische Titel bearbeitet werden. Die restlichen Daten werden automatisch via OData-Binding geladen, z.B. aus Microsoft Azure.
Im Reiter Kategorien sind Branchenerfahrungen, Entwicklungsmethoden, Zertifizierungen, Beratungsschwerpunkte und Fremdsprachen aufgelistet. Diese können auch direkt gepflegt und für jeden Profiltyp angepasst werden.
Abbildung 9: Profildetailansicht – Kategorien: In diesem Reiter werden die verschiedenen Metadaten eines Profils verwaltet, wie die Branchenerfahrung eines Mitarbeiters, besondere Entwicklungsmethoden, welche Zertifizierungen dieser abgeschlossen hat, welche Fremdsprachen der Mitarbeiter beherrscht.
In der Registerkarte Skills sind alle Fähig- und Fertigkeiten dargestellt. Diese können direkt in der Oberfläche gepflegt werden.
Abbildung 10: Profildetailansicht – Skills: in diesem Reiter sind die Fähigkeiten mit dazugehörigem Kenntnisstand aufgelistet.
Im Reiter Projekte sind alle abgeschlossenen und aktuell laufende Projekte gelistet. Diese können direkt bearbeitet und gepflegt werden.
Abbildung 11: Profildetailansicht – Projekte: im Projektreiter ist die Möglichkeit zur Projektpflege gegeben. Hier können neue Projekte angelegt, vorhandene aktualisiert und erweitert werden.
Wir haben uns für einen generischen Profilexport entschieden, der es erlaubt ein Word Template automatisch zu befüllen. Voraussetzung ist die einmalige Erstellung eines Word Layouts. Dieses Template wird im Backend hinterlegt und bei jedem Export automatisch mit den passenden Daten bestückt. Dies garantiert die Einheitlichkeit der Profile und erspart jeglichen manuellen Eingriff.
Abbildung 12: Word-Template: Mit Syntax des npm-Paketes docx-templates erstelltes Word-Template.
Hier als Beispiel das erstellte Profil von obigem User Max Mustermann:
Abbildung 13: Exportiertes Word-Dokument: Das von der Export-Funktion erzeugte Word-Dokument.
Die Entscheidung ein Profilmanager als Webanwendung mit den Technologien von SAP CAP und OpenUI5 umzusetzen, stellt sich als gute Wahl dar. Die beiden Technologien greifen gut ineinander und erleichtern die Entwicklung, da auch komplexere Prozesse gut abzubilden sind. Der Einsatz von TypeScript, welchen SAP CAP und OpenUI5 unterstützen, bringt einen großen Mehrwert bei der Entwicklung, da viele Fehler vor der Laufzeit abgefangen werden können. Auch wenn die Dokumentationen von SAP CAP und OpenUI5 sehr umfangreich und detailliert sind, konzentrieren diese sich sehr auf JavaScript, was die Entwicklung in TypeScript teilweise erschwert.
Wir setzen Forschung und Entwicklung eigenständig als auch mit externen Partnern (Universitäten, Kooperationspartner u. ä) um, wir realisieren neue Produkte und Leistungen, die unsere Kunden voranbringen.
Die OctaVIA AG nimmt Teil am Forschungsprojekt „itP³ intelligenter Projektplanungs-Prozess“.
Ziel des Forschungsprojektes ist Projektplanungs- und Projektausführungsprozesse mit digitalen Tools und künstlicher Intelligenz zu automatisieren, schnell präzise und verständliche Angebote zu erstellen und in der Projektumsetzung flexibel und mit hoher Qualität agieren zu können. Durch den vernetzten Informationsaustausch entsteht ein digitaler Zwilling der Projektsituation. Intelligente Algorithmen ermitteln automatisch relevante Zusammenhänge zwischen Arbeitspaketen und verknüpfen die aktuelle Situation mit Material einer bestehenden und stetig wachsenden Wissensbasis. Zentraler Gedanke des Projekts ist es den Planungsprozess, die Projektumsetzung und die Wissensbasis in einem Tool zu verbinden, so dass durch den digitalen Informationsaustausch alle drei Bereiche von deutlichen Effizienzsteigerungen profitieren.
Das Projekt wird vom Land Hessen im Programm Distr@l 2B mit einer halben Million Euro gefördert.
Die Welt befindet sich stetig in einem Prozess des Wandels. Der Anspruch wächst, alles soll schneller, höher und weiter verlaufen als zuvor. Im Strom der Zeit mitzuhalten, erfordert sowohl von jedem einzelnen Menschen als auch von großen Unternehmen jene Bereitschaft der stetigen Weiterentwicklung. Im Folgenden betrachten wir nun einen spezifischen Aspekt, die wachsenden Digitalisierung, genauer. Denn auch hier ist ein stetiger Fortschritt unumgänglich. Immer mehr und mehr Daten rasen in schwindelerregendem Tempo von A nach B und wieder zurück, um irgendwann zu C und D zu gelangen. Gerade im Anbetracht dessen zwang uns alle die COVID- 19 Pandemie ein Stück weit in die Knie. Sie zeigte uns auf, dass von heute auf morgen eine noch schnellere Reaktion auf die Umstände verlangt wird als bisher.
Viele Unternehmen waren plötzlich wie leergefegt, Homeoffice und viel Improvisation stand auf der Tagesordnung. Eine weiterentwickelte Digitalisierung, zum einen für die stetige Kommunikation als auch die Integration der dadurch vermehrt anfallenden Daten, die nun integriert werden sollten, spielt gerade in der heutigen Zeit eine große Rolle, um alles am Laufen zu halten und im Wettbewerb aller mitzuhalten.
Laut dem Wallstreet Journal betreiben große Unternehmen im Schnitt 129 Anwendungen (Stand: 2018), kleinere Unternehmen bringen es immerhin auf durchschnittlich 73 Applikationen. Mehr und mehr dieser Anwendungen werden dabei nicht mehr (ausschließlich) On-Premises, sprich auf lokalen Maschinen bzw. in unternehmenseigenen Rechenzentren, betrieben, sondern werden in die Cloud ausgelagert. Die Herausforderung für die Unternehmen besteht nun darin, die Daten der verschiedenen Anwendungen so miteinander zu integrieren, dass ein Mehrwert aus Unternehmenssicht geschaffen werden kann.
Die SAP ist Vorreiter in diesen Prozessen und bietet aus technologischer Sicht mit der SAP Business Technology Platform (BTP) den zentralen Baustein, um Daten und Prozesse anwendungsübergreifend miteinander zu integrieren. Dabei spielt es keine Rolle, ob die Systeme in der Cloud oder On-Premises laufen.
Im Folgenden soll am Beispiel der Integration eines S/4HANA OData Services in eine SAP Fiori Cloud Anwendung die Möglichkeit der Datenintegration mittels BTP veranschaulicht werden.
Die Systemarchitektur orientiert sich an der folgenden Abbildung:
Abbildung 1: Systemarchitektur für die Anbindung eines On-Premises Systems an eine Cloud Applikation. Bitte beachten: Die SAP Cloud Platform wurde im Januar 2021 umbenannt und wird nun als Business Technology Platform bezeichnet .
Grundsätzlich werden die beiden Zonen „On-Premises Landscape“ und „Internet“ unterschieden. Während das On-Premises System – in unserem Fall ein S/4HANA – im geschützten Unternehmensnetzwerk läuft, befinden sich alle anderen Komponenten in der Cloud.
Die wichtigsten Komponenten im Überblick:
On-Premises Landscape | Internet |
|
|
In den folgenden Abschnitten zeigen wir die nötigen Bausteine, um Daten aus einem S/4HANA System in einer Cloud Applikation anzeigen zu lassen. Hierbei fokussieren wir uns auf die App sowie die Konfiguration der Datenquelle, geben jedoch im folgenden Abschnitt einen Überblick über die weiteren notwendigen Systeme.
In Anlehnung an die in Abbildung 1 dargestellten Bausteine setzen wir voraus, dass folgende Systeme inkl. einer korrekten Konfiguration vorhanden sind:
Abbildung 2: Am BTP Subaccount registrierter Cloud Connector. Der virtuelle Host ’s4h:443′ wird in der Destination Konfiguration verwendet.
Nach dem Start des BAS sollte als erstes die Datenquelle konfiguriert werden. Hierzu wird in der Menüleiste auf der linken Seite der Eintrag „Service Center: SAP System“ gewählt. Dann kann das System per „Add System“ hinzugefügt werden, siehe Abbildung 3.
Abbildung 3: Konfiguration der Datenquelle im Business Application Studio
Sobald die Verbindung, über den Cloud Connector zu dem On-Premises System, erfolgreich hergestellt wurde, kann direkt der Service Katalog angezeigt werden. Als nächstes wird nun, auf Basis der „API_BUSINESS_PARTNER“, ein neues Fiori Projekt erzeugt.
Es gibt viele Wege ein Fiori basiertes Projekt zu erzeugen. Wir konzentrieren uns hier auf den Weg der Generierung eines Fiori Projektes direkt über den Service Katalog. Wählen Sie im „Service Center“ das entsprechende SAP System. Unterhalb des SAP Systems werden nun die verfügbaren Services angezeigt:
Abbildung 4: Erstellung eines Projektes auf Basis eines S/4HANA Services
Führen Sie folgende Schritte aus:
Abbildung 5: Konfiguration der Projektattribute
Das Projekt inkl. dem erforderlichen Quellcode wird nun generiert. Falls das Projekt nicht automatisch zum Workspace hinzugefügt wird, führen Sie folgende Schritte aus:
Das Projekt kann nun direkt getestet werden. Führen Sie dazu folgende Schritte aus:
Abbildung 6: Starten der generierten Fiori Applikation
Es sollte sich nun ein neues Browserfenster/-tab geöffnet haben. Falls dies nicht der Fall ist, überprüfen Sie bitte Ihren Popup Blocker. Standardmäßig ist die App so konfiguriert, dass keine Spalten in der „List Report Page“ angezeigt werden. Klicken Sie daher im oberen rechten Bereich der Seite auf das Zahnrad und wählen Sie beliebige Spalten aus:
Abbildung 7: Auswahl der Spalten in der generierten Fiori App
Nach der Auswahl der Spalten klicken Sie bitte auf den Button „Go,“ um die Daten aus dem On-Premises S/4HANA System zu laden:
Abbildung 8: Darstellung der API_BUSINESS_PARTNER im ListReport
Deutlich wurde nun, dass die Integration von On-Premises Daten in eine Cloud Anwendung grundsätzlich keine Raketenwissenschaft ist – vorausgesetzt die nötigen Systeme sind korrekt konfiguriert.
Außerdem ist zu beachten, dass gerade, wenn es um fortgeschrittene Techniken wie „Principal Propagation“ geht, Expertenwissen gefragt ist. Principal Propagation bedeutet ein automatischer Login im On-Premises System, auf Basis des in der Cloud angemeldeten Benutzers.
Möchten Sie Ihren persönlichen Use-Case analysieren? Sprechen Sie uns gern an. Wir begleiten Sie von Anfang bis Ende und sorgen dafür, dass Sie das Maximum aus Ihren Daten herausholen.