Beitrag vom: 14.10.2022 Kategorie: Aktuelles

Skill Chart

 

Intro – Herausforderung & Lösung

 

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.

 

SAP CAP und deren Anwendung

 

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

 

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

 

 

SAPUI5 vs. OpenUI5

 

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. 

 

Anwendung am Beispiel der OctaVIA eigenen Umsetzung 

 

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:

 

Abbildung 4: Profilsuche: Auflistung aller Mitarbeiter nach Namen und Profiltypen. Die Profilvollständigkeitsanzeige gibt an, wie weit das jeweilige Profil gepflegt wurde. 

 

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.

 

 

Abbildung 5: Skills-Filter: in dieser Multi-Combo-Box können die gesuchten Skills selektiert werden. Dazu kann ein einzelner Skill ausgewählt werden. oder mehrere über die Checkboxen. Eine Textsuche wird unterstützt. Die Eingabe der Anfangsbuchstaben eines Wortes, oder das gesamte Wort, reduziert die Anzeige in der Multi-Combo-Box auf die passenden Skills. 

 

In unserer Anfrage sind die Skills SAPUI5, SAP CAP und S/4HANA gefordert, der Skills-Filter hilft eine Vorauswahl zu treffen.

 

Abbildung 6: Skills-Filter: Nach Eingabe der gewünschten Skills, werden nur noch die Mitarbeiterprofile angezeigt, welche den Suchkriterien genügen, also alle Profile , welche die ausgewählten Skills enthalten. Somit kann effizient eine Vorauswahl getätigt werden. 

 

 

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.

 

Abbildung 7: Skill-Level: Bei der Auswahl des Skill-Levels werden zusätzlich zu den einzelnen Skills, diejenigen Profile gefiltert, die mindestens so viele Sterne haben wie gewünscht. Alle anderen Profile werden ausgeblendet. 

 

Profildetailanzeige:

 

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.

 

Abbildung 8: Profildetailansicht – Stammdaten: Hier sind die Stammdaten eines Mitarbeiters zu sehen.

 

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.

 

Profilexport

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. 

 

Fazit

 

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.

 

 


Anschrift Kassel
Tischbeinstraße 32
34121 Kassel

Anschrift Köln
Emil-Hoffmann-Straße 55-59
Bürogebäude 6
50996 Köln-Rodenkirchen

Allgemeiner Kontakt
Telefon +49 561 - 3 10 00 0
Telefax +49 561 - 3 10 00 31
» eMail-Kontakt zu uns

Öffnungszeiten
Montag bis Freitag
von 08:00 Uhr bis 17:00 Uhr

Kontakt