COVID-19 Massnahme: Pendlerschein / Passierschein für die Grenzkontrolle

Seit Montagmorgen, 16. März 2020 um 08:00 Uhr sind an den Grenzen zu Deutschland strikte Kontrollen für den Personenverkehr eingeführt worden. Da viele Grenzgänger im mittelbaren Ausland arbeiten, sollte der Ablauf an der Grenze so einfach wie möglich gestaltet werden. Ein Pendlerschein oder Passierschein des Arbeitgebers kann (in Kombination mit dem Arbeitsvertrag) in diesem Fall die Kontrolle an den Grenzen beschleunigen und die Lage für alle Beteiligten angenehmer gestalten. [Anmerkung: Bitte beachten Sie, dass die reine Durchreise via beispielsweise Jestetten/Lottstetten (DE) - für den Weg von Hallau (SH) nach Zürich - an der Grenze als unnötig gewertet werden und zu einer Abweisung führen kann!]

Mit unserer Expertise in der Prozessautomatisierung stellen wir jedem Arbeitgeber in diesem Hinblick die Software-Kapazitäten der Routinuum GmbH kostenfrei zur Verfügung. Wir haben einen «Roboter-Prozess» erarbeitet, der innert kürzester Zeit sämtliche Pendlerscheine für Ihre Arbeitnehmerinnen und Arbeitnehmer ausstellen kann. Unten aufgeführt ist ein Beispiel des fertigen PDF-Dokuments, das Sie nur noch verteilen und ausdrucken müssen – dann gestaltet sich hoffentlich bereits heute der Nachhauseweg am Feierabend für alle besser. (Die Möglichkeit mit den öffentlichen Verkehrsmitteln besteht ebenfalls, unser Roboter stellt Ihnen die entsprechende Variante flexibel zusammen. Aktuell haben wir zudem vier verschiedene Sprach-Versionen vorbereitet (DE, FR, IT und EN) - unten wird Ihnen gezeigt, wie Sie dies selbst steuern können.

 [Bitte beachten Sie: Dieses "handgestrickte" Dokument garantiert keinesfalls das Passieren der Grenze - insbesondere eine ledigliche Durchreise kann als "unnötig" eingestuft und somit verneint werden.]

Was müssen Sie unternehmen, um von unserem kostenlosen Dienst zu profitieren?

Alles, was wir von Ihnen benötigen, ist eine ausgefüllte Excel-Datei und allenfalls eine Logo-Bilddatei Ihres Unternehmens. Senden Sie die nachfolgend erläuterten Unterlagen einfach an unsere Mailbox info@routinuum.ch. Wir stellen Ihnen eine Vorlage zur Verfügung, damit Sie die Informationen entsprechend aufbereiten können – Sie können sie unter diesem Link abrufen. Hinsichtlich des Datenschutzes und der Datenaufbewahrung finden Sie am Ende dieses Beitrags weitere Ausführungen. In der aufbereiteten Vorlage finden Sie zwei Tabellenblätter vor: Die Metadaten zu Ihrem Unternehmen und die Liste der Arbeitnehmer (Pendler/Grenzgänger). Zu Ihrem Unternehmen benötigen wir lediglich: Name, Strasse und Ort:

EmployerMetaData

Die Liste mit den Arbeitnehmer Informationen (Ihre Pendler und Grenzgänger) sollte folgende Informationen enthalten:

EmployeeList

Aufgrund der Verkehrsmittel-Angabe «Car» oder «Public Transport» in Spalte E wird der Pendlerschein automatisch in der entsprechenden Variante für Sie aufbereitet. Mit Language in Spalte "F" können Sie selbst bestimmen, in welcher Sprache das Dokument ausgestellt werden soll - bitte verwenden Sie da DE, FR, IT oder EN. (Für weitere Sprachen können Sie gerne mit uns Kontakt aufnehmen, es ist für uns ein vernachlässigbarer Aufwand, um die Vorlage entsprechend anzupassen!)
Nach der Verarbeitung erhalten Sie von uns unmittelbar eine .zip-Datei mit sämtlichen Pendlerscheinen im PDF-Format für die interne Distribution.

Wir wünschen Ihnen und Ihren Arbeitnehmerinnen und Arbeitnehmer alles Gute und gute Gesundheit!

Routinuum GmbH

Challenge Routine.

info@routinuum.ch

www.routinuum.ch

(Excelblog.ch ist eine Marke der Routinuum GmbH)

Datenschutz und Datenaufbewahrung

Wir garantieren Ihnen, dass wir sämtliche personenbezogenen Daten nach der Aufbereitung der Pendlerscheine wieder vernichten werden. Wie die Informationen zum Arbeitsweg jedes einzelnen Arbeitnehmers auf Seiten von Google Maps registriert wird, können wir leider nicht beeinflussen. Unser Software-Roboter gibt lediglich Start- und Endziel der Reise (sowie Auto/Zug) ein, um die Route zu planen. Nachdem wir Ihnen die PDFs übermittelt haben, werden wir Ihre E-Mail mit den Personendaten wieder entfernen. Einzig für anonymisierte Statistikzwecke werden wir Ihr Unternehmen und die gesamte Anzahl Pendlerscheine bei uns intern – innerhalb der Routinuum GmbH und mit unserem Partner UiPath – erfassen.

VBA-Makros und RPA kombinieren

Mit Robotic Process Automation (RPA) lassen sich wiederkehrende Tätigkeiten automatisieren. Dieser Aspekt ist stark verwandt mit Makros - und RPA wird durchaus als nächste Stufe von Makros angesehen (insbesondere durch den Umstand, dass jede Applikation oder Datenquelle angebunden werden kann, nicht selten mittels Interaktion über das User Interface).

Die gängigen RPA-Tools verfügen über integrierte Excel-Aktivitäten. Auf einige Möglichkeiten mit der Lösung von "Kofax" wurde in diesem Beitrag bereits eingegangen. Die Abbildung unten zeigt einige Standard-Aktivitäten in der Software "UiPath", mit der das Beispiel in diesem Beitrag erarbeitet wird:

UiPathExcelActivities

Diese Optionen lassen bereits enorm viele Tätigkeiten zu - man kann also repetitive Excel-Schritte, die ein Benutzer ausführt, auch direkt aus der RPA-Software heraus in den gesamten Arbeitsablauf integrieren. Wer jedoch bereits mit VBA vertraut ist, setzt eher auf dieses Pferd, da man sich vom (eigenen) VBA-Code beispielsweise mehr Flexibilität und weitere Vorteile verspricht. Die Entscheidung ist abhängig vom Anwendungsfall und sollte jeweils evaluiert werden. Meine Empfehlung ist jederzeit, dass man auf Stärken von angebundenen Tools setzt und RPA als Bindeglied einsetzt.

Die Daten-Extraktion

Wir bearbeiten in diesem Beitrag folgendes Beispiel: Über das Web greifen wir auf ein internes "Sales Portal" zu. Darauf sind unter anderem in Tabellen-Form bestimmte Informationen und Aktivitäten unserer Aussendienstmitarbeiter einzusehen. Die Angaben in der Tabelle "Prospecting Activities per Sales Manager" möchten wir in einem eigenen Excel-Bericht besser darstellen. Die angesprochene Tabelle sieht wie folgt aus:

ProspectingActivitiesTable

Du kannst gerne ebenfalls mit unseren Demo-Daten experimentieren, die Test-Umgebung ist unter folgenden Links abzurufen:

https://www.routinuum.ch/demo-sites/MAB/SalesPortal.html

Es ist ein Login eingerichtet, wobei man einfach mittels Klick auf den "Login"-Button auf die Seite mit den Sales Informationen gelangt (alternativ direkt auf diesen Link navigieren: https://www.routinuum.ch/demo-sites/MAB/SalesData.html).

Bei einem manuellen Prozess würden diese Angaben in eine Excel-Tabelle eingetragen oder kopiert werden. Mit einer Automatisierung in UiPath loggen wir uns direkt in das Sales Portal ein und extrahieren die Daten entsprechend. Die Sequenz in UiPath kann wie folgt gestaltet werden:

DataExtractionSequence

Mit "Write Range"-Aktivitäten in UiPath kann dann diese extrahierte Tabelle an einen beliebigen Ort in Excel geschrieben werden (siehe unten).

Kombination mit VBA zu einem gesamtheitlichen Ablauf

Nach der Daten-Extraktion wären wiederum repetitive Arbeitsschritte notwendig, um den Bericht entsprechend aufzubereiten. Insbesondere hier wurde bislang bereits oft mit Makros (VBA) angesetzt. Auch ich habe mir für dieses Beispiel ein kurzes VBA-Skript aufbereitet, das die Rohdaten und die "Actual-Werte" in einer Pivot-Tabelle aggregiert und darstellt. Das Endergebnis sieht wie folgt aus:

ProspectingActivitiesPivot

Doch wie kann man nun RPA (UiPath) und VBA miteinander kombinieren? Dem aufmerksamen Leser sind möglicherweise zwei Aktivitäten in der allerersten Abbildung aufgefallen: "Execute Macro" oder "Invoke VBA". Mit erstgenannter Aktivität werden wir hier arbeiten. Nach der "Write Range"-Aktivität, um die extrahierten Daten in die Excel-Tabelle zu schreiben, fügen wir den Schritt "Execute Macro" ein. In Anführungszeichen setzen wir den Namen des Makros ein - in meinem Fall "PrepareData". Dies sind die Aktivitäten innerhalb der Sequenz "Excel Activities / Macro" in UiPath:

ExcelActivitiesSequence

Das ist es bereits! Der Roboter-Prozess öffnet eigenständig den Browser, loggt sich in das Sales Portal ein, extrahiert die Daten aus der "Prospecting Activities"-Tabelle, transferiert sie in das Excel-File und führt das separat angelegte Makro aus. Der vollständige Ablauf kann wie folgt strukturiert sein:

RPAVBAKombinationProzess

Die erste Sequenz "Get Credentials (Login)" fragt mögliche Login-Angaben aus dem Windows Credentials Manager (Anmeldeinformationsverwaltung) ab und zieht diese Angaben sicher in den Roboter-Prozess mit ein. Ein ausführlicher Beitrag dazu haben wir als Post auf der Website der Routinuum GmbH wie auch auf LinkedIn (Englisch) veröffentlicht.

Weiterführende Überlegungen zum Beispielprozess

Ein grosser Vorteil von RPA besteht darin, dass man jede denkbare Datenquelle erschliessen kann. Angenommen, eine Ländergesellschaft ist noch nicht an das vorgestellte "Sales Portal" angebunden. Periodengerecht erhalten wir die Informationen per Email, beispielsweise mit einem beiliegenden Excel-File. Der illustrierte Ablauf kann also durch Email-Aktivitäten (z.B. Outlook) beliebig erweitert werden, sodass der Dateianhang abgespeichert wird. Mit der "Append Range"-Aktivität können diese zusätzlichen Informationen ganz einfach der bestehenden Tabelle aus der Sales Portal-Datenextraktion angehängt werden. Durch dynamische Bereiche im erstellten Makro - beispielsweise mit der Codezeile  LastRow = Range("A1").End(xlDown).Row zur Ermittlung der letzten Zeile - inkludiert das Makro auch weitere Einträge in die entsprechende Pivot-Tabelle.

Dynamische Selektoren in UiPath Studio

Wenn es einen Begriff gibt, der im Kontext von Web Automation und Robotic Process Automation (RPA) nicht ausgelassen werden kann, dann ist dies «Selektoren». Die Hauptursache von Fehlern liegt in falsch gesetzten oder alten Selektoren, welche nicht den Gegebenheiten des entsprechenden User Interface (UI) entsprechen. Um die korrekten UI Elemente anzusteuern, müssen teilweise dynamische Informationen verwendet werden. In diesem Falle wird der notwendige (dynamische) Input in einer Variable zwischengespeichert, welche als Teil des Selektors verwendet wird.

Um den Einsatz von Variablen in Selektoren (dynamische Selektoren) in UiPath Studio zu illustrieren, verwenden wir die Website «www.asvz.ch». ASVZ ist der Akademische Sportsverband Zürich, eine Plattform, auf der Studenten ein breites Angebot an anstehenden Sportaktivitäten in unterschiedlichen Lokalitäten vorfinden und buchen können. Alle Termine werden auf der Website unter «Sportfahrplan» aufgeführt. Die Sportarten können direkt in der Überschrift gefiltert werden. In diesem Beispiel suchen wir zuerst nach «Basketball». Hier wird direkt ersichtlich, dass ein dynamischer Selektor basierend auf einem initialen User Input notwendig ist:

SearchField

Zu Beginn unserer Web Automation wird der Benutzer demnach aufgefordert, die gewünschte Sportart einzugeben (z.B. Basketball). Wie oberhalb erwähnt soll diese Information in einer Variable zwischengespeichert werden, welche direkt in den Selektor eingebaut wird. Eine normale «Click»-Aktivität auf den Filter (in der Überschrift) generiert in UiPath den folgenden Selektor:

InitialSelector

Beachte, dass der Selektor spezifisch auf «Basketball» eingestellt ist. Demnach, wenn der Software-Roboter beispielsweise nach «Badminton» suchen wird, kann das UI Element nicht identifiziert werden und die Prozedur wird nach einem Standard «Timeout» von 30 Sekunden gestoppt und eine entsprechende Fehlermeldung wird ausgegeben. Um den erwähnten Selektor-Teil dynamisch zu gestalten, ist ein Rechtsklick auf das «aaname»-Element notwendig, gefolgt von «Choose variable», da die Variable bereits zuvor definiert wurde (das Resultat/die Ausgabe von der User Input-Aktivität):

InitialSelectorAAName

In der nachfolgenden Maske wird die Variable selektiert. Stelle zuvor auf jeden Fall sicher, dass der Bereich (Scope) der Variable korrekt gesetzt ist, um sie in späteren Aktivitäten ebenfalls abzurufen.

ChooseVariable

Das Resultat ist ein dynamischer Selektor, wie in der Abbildung unten dargestellt. Die Variable wird automatisch mit den notwendigen geschweiften Klammern in den gesamten Selektor integriert. Nun kann die Web Automation jeden beliebigen User Input, der einer verfügbaren Sportart entspricht, selektieren und die Daten danach filtern.

DynamicSelector

Bitte beachte, dass unvollständige Suchbegriffe und Platzhalter nicht in diesem Beitrag berücksichtigt werden. Diese könnten ebenfalls inkludiert werden, um den Selektor und den gesamten Prozess noch robuster zu gestalten.