Forum Discussion

martinnolte970's avatar
martinnolte970
Copper Contributor
Feb 27, 2023

CLOUDBASIERTE INFORMATIONSSYSTEME – DKV MOBILITY

 

Einleitung

In diesem Blogbeitrag geht es um ein Projekt zwischen der DKV Mobility und der FH Aachen. Das Projekt wurde von Studenten der FH Aachen mit Unterstützung von Microsoft-Projektpartnern realisiert. Im Rahmen unseres Moduls „Cloudbasierte Informationssysteme“, das von unserem Prof. Dr. Christian Drumm gehalten wurde, hatten wir die Gelegenheit, mit der DKV Mobility an einem Integrationsprojekt zu arbeiten. Die Integration erfolgte über Power Automate Desktop von Microsoft.

 

Wer ist die dkv?

Die DKV Mobility Holding GmbH ist Europas Marktführer für Premiumservices rund um die Unterwegsversorgung und Mobilität von Lkw- und Pkw-Flotten. Sie liefert intelligente Lösungen von höchster Qualität, die zuverlässig helfen günstig zu tanken, mobil zu bleiben und effizient zu arbeiten. Immer getreu der Unternehmens-Philosophie: "You drive, we care.".

 

Was war unsere Aufgabe?

Ziel des Projekts: Als Datenvalidierer sollen alle verfügbaren Daten in einem strukturierten Format von verschiedenen Datenquellen an das Unternehmen (DKV) geliefert werden, damit die Informationen in einem späteren Schritt mit den Daten aus den anderen Quellen verglichen werden können. Die Entwickler, die die Validierungsfunktion erstellen, müssen die Daten aus den Datenquellen in einem strukturierten Format haben. Die Software sollte zu Webseiten (Quellen) gelangen, das jeweilige Unternehmen öffnen und alle verfügbaren Daten extrahieren. Lassen Sie uns die anstehende Aufgabe etwas genauer aufschlüsseln, damit Sie einen klaren Überblick darüber bekommen, was wir tun mussten und worum es bei diesem Projekt im Detail geht.

 

Projektablauf / Meilensteine

Als erstens haben wir verschiedene Quellen identifiziert, bei denen Daten von Unternehmen extrahieren werden könnten. Die Daten sollten mithilfe von Web-Crawlern oder anderen Skripten extrahiert werden. Danach wurde der Prozess entwickelt, um den gesamten Vorgang abzubilden. Es wurde eine Datenstrukturdefinition erstellt, um die Form der Daten zu bestimmen, die an die API der DKV geschickt werden sollten. Dazu sollte noch ein Algorithmus entwickelt werden, um die Priorisierung von Daten aus verschieden Quellen zu regeln. Das alles sollte in ein Framework eingebaut werden und automatisiert funktionieren. Die Datenextraktion haben wir jeweils mithilfe von Python-Skripten und Office-Scripts realisiert. Um alles miteinander zu verbinden wurde Power Automate genutzt. Hierbei haben die Office-Scripts lediglich mit der Web-Version von Power Automate funktioniert und die Python Skripte nur mit der Desktop Version. Letzteres war unsere Finale Lösung. Das ganze wurde mittels einer Webanwendung und Power-Automate Flows entwickelt und konfiguriert. Obwohl sie nicht in unserer finalen Version enthalten sind, werden im nächsten Abschnitt die Office-Scripts aufgegriffen und deren Funktionen veranschaulicht.

 

Was sind Office-Scripts?

In Microsoft Excel sind Office-Skripts integriert, um die Automatisierung von Aufgaben zu vereinfachen. Dabei können Benutzer Skripte schreiben, um Aufgaben in Excel automatisch auszuführen. Beispiele für solche Aufgaben sind Datenüberprüfung, Automatisierung von Formatierungen oder Integration aus verschiedenen Quellen.

 

Auf Office-Skripts kann man ganz einfach zugreifen, indem man bei Excel auf den Tab Automatisieren klickt. Wenn dieser bei der Web-Version von Excel nicht aufzufinden ist, kann dies daran liegen, dass man für die Seite noch die webseitenübergreifenden Cookies aktivieren muss.

Unter diesem Tab finden sich einige Funktionen. Einerseits kann man einfach ein neues Skript anlegen oder sich die bisher erstellen Skripte anzeigen lassen. Diese werden in einem Unterordner bei OneDrive for Business gespeichert. Einzigartig hier ist allerdings das Tool „Aktionen aufzeichnen“. Aktiviert man dies, so werden alle Benutzeraktionen wie beispielsweise das Ändern von Werten einer Zelle, Formatierungen oder das Einfügen von Diagrammen aufgezeichnet.

Das wollen wir kurz an einem Beispiel veranschaulichen. Hier haben wir eine Tabelle, die zu verschiedenen Tagen Umsatz und Kosten enthält. Vielleicht möchten wir uns diese Daten etwas besser aufbereitet anschauen. Mit der aktivierten Aufzeichnung werden wir nun eine neue Spalte „Gewinn“ einfügen, die Formatierung ändern sowie ein Säulendiagramm erstellen, welches unsere Daten veranschaulichen soll.

Wie man hier sehen kann, wurden alle Aktionen aufgezeichnet. Wenn wir nun die Aufzeichnung stoppen, können wir uns das Aufgezeichnete als Office-Script ansehen.

Was hierbei ebenfalls sehr hilfreich ist, sind die Kommentare, die automatisch erzeugt werden und es dem Benutzer einfacher machen, den generierten Code zu verstehen.

Bei Office-Scripts gibt es immer eine main-Funktion, die die aktuelle Excel Arbeitsmappe als Parameter entgegen nimmt. Man kann ein fertiges Skript im Anschluss auch bei anderen Arbeitsmappen ausführen, was für eine hohe Wiederverwendbarkeit sorgt.

Die meisten Aktionen werden in der Art ausgeführt, dass zunächst die entsprechende Range festgelegt und für diese dann Veränderungen vorgenommen oder deren Werte ausgelesen werden.

Wie auf dem Bild zu sehen ist, wurden zuerst die entsprechenden Werte in den Zellen D1 und D2 gesetzt. Hier funktionieren neben Zahlen und Strings auch Formeln mit Bezug auf andere Zellen wie üblicherweise bei Excel. Anschließend wird durch autoFill() dafür gesorgt, dass in der gesamten Spalte die Werte für den Gewinn in den Zellen errechnet werden. Danach werden auf bestimmten Ranges Formatierungen wie fetter Text oder das Zahlenformat geändert. Zum Schluss wird ein Linien-Diagramm eingefügt, welches den Gewinn nach Tagen abbildet.

Haben wir nun eine zweites Arbeitsblatt, so können wir für dieses unser neu erstelltes Skript einfach ausführen und ersparen uns dadurch die manuellen Aktionen. Dies ist natürlich besonders praktisch, bei gleichen Tätigkeiten, die häufig anfallen und bislang von Mitarbeitern manuell bearbeitet werden.

 

Wie haben wir Office-Scripts zur Lösung unseres Problems verwendet?

Unsere Aufgabe bestand darin, anhand von einzelnen Daten wie Name oder Telefonnummer eines Unternehmens, mehr Informationen über dieses Unternehmen herauszufinden, diese strukturiert abzuspeichern und anschließend an die API der DKV zu schicken. Jedoch lagen bei den meisten unserer herangezogenen Quellen die relevanten Daten hinter einer Paywall oder das Webcrawling der Daten von den jeweiligen Webseiten hat nicht funktioniert. Eine Alternative, die wir hierzu gefunden haben, sind die herunterladbaren Excel-Tabellen von CompaniesData.cloud. Dort gibt es für einige europäische Länder jeweils eine Free- und eine Premium-Version einer Tabelle, die eine Reihe an Daten der Unternehmen des Landes enthält. Bei der Premium-Version gibt es zusätzliche Daten, die bei der Free-Version nicht mit enthalten sind. Wir konnten im Rahmen unseres Projektes lediglich die Free-Versionen dieser Tabellen benutzen, doch die DKV könnte die resultierte Lösung erweitern, indem sie auf die Premium-Tabellen zurückgreift.

Wie kommen jetzt die Office-Scripts ins Spiel?

Auch wenn unsere finale Lösung Python-Skripte benutzt, was durchaus eleganter ist, hatten wir zwischenzeitlich mit Office-Scripts gearbeitet, da man diese über Power Automate Flows ausführen kann, ohne dass man Azure-Functions dafür braucht, wie es bei Python-Skripten und der Webversion von Power Automate der Fall war. Demnach waren für uns die Office-Scripts naheliegend, da wir mit Excel-Tabellen gearbeitet haben und wir die Operationen automatisch ausführen lassen wollten.

Dazu haben wir alle kostenlos zugänglichen Excel-Tabellen zunächst vorverarbeitet, indem wir diesen eine einheitliche Struktur gaben, damit das Skript sie besser durchsuchen konnte. Die Tabellen wurden auf OneDrive for Business abgelegt, so kann man sie im Web öffnen und das Office-Script entwickeln. Es gibt eine andere Datei, in der sich jeweils Unternehmensname und Telefonnummer einer Reihe von Unternehmen befinden, nach denen gesucht werden soll. Das Office-Script ist so aufgebaut, dass es diese Datei zeilenweise durchgeht und pro Unternehmen in den anderen Tabellen nach dem Namen sucht. Wird dieser gefunden, dann werden aus der Tabelle alle Daten des Unternehmens in einer Ergebnisdatei abgespeichert.

Um die Laufzeit des Office-Scripts zu verbessern haben wir eingebaut, dass zunächst die Telefonnummer des Unternehmens überprüft wird. Beginnt diese mit einer Ländervorwahl eines Landes, zu dem eine Tabelle existiert, dann wird diese Tabelle nach dem Unternehmensnamen durchsucht. Gibt es keine Tabelle, die zu der Vorwahl passt, dann wird die Suche abgebrochen.

No RepliesBe the first to reply

Resources