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.

AI Computer Vision in RPA

Virtuelle Desktop Infrastrukturen (VDIs) rund um Citrix, VMware oder Windows Remote Desktop stellen für Robotic Process Automation (RPA) einige Herausforderungen dar. Im Generellen setzt RPA auf sogenannte Selektoren, die zugrundeliegende Eigenschaften von User Interfaces (UI) und deren Elemente benutzen. Textfelder und Buttons in nativen Desktop-Systemen werden in dieser Manier identifiziert und korrekt gesetzte Einstellungen führen zu verlässlichen und robusten Prozeduren. Das UI, das wir in virtuellen Umgebungen angezeigt bekommen, ist lediglich ein Bild, das vom Remote Desktop her übermittelt wird. In diesem Falle können keine Selektoren identifiziert werden. Bestrebungen zur Automatisierung laufen deshalb auf Optical Character Recognition (OCR) oder «Image Matching» hinaus. Diese Methoden sind nicht gleich verlässlich wie die beschriebenen Selektoren, doch können dennoch positive Resultate erzielt werden. Allerdings gilt es zu beachten, dass bereits kleine Anpassungen des UIs oder bei der Verwendung einer anderen Bildschirmauflösung Ungenauigkeiten und Fehler entstehen können, die die Automatisierung hindern.

Mit «AI Computer Vision» von UiPath werden diese Herausforderungen gemeistert. Ein Algorithmus (1) ermöglicht menschenähnliche Erkennung von User Interfaces, durch «Benutzung einer Mischung aus AI, OCR, fuzzy matching von Texten und einem Anker-System, das alles zusammenhält». Als Folge davon ermöglichen die Aktivitäten dem Software-Roboter die visuelle Identifizierung von übermittelten Elementen des Remote Desktops. Demnach setzt AI Computer Vision nicht auf Image Matching, was die automatisierten Prozessschritte im Workflow resistent gegen Interface Anpassungen oder einer veränderten Bildschirm-Auflösung. Zusätzlich zu den oben erwähnten Möglichkeiten können die Computer Vision Aktivitäten für die Element-Erkennung in anderen Fällen wie z.B. in SAP, Silverlight, PDFs oder für Bilder im Generellen.

Um die Computer Vision Aktivitäten in UiPath Studio einsetzen zu können, ist das offizielle Package von UiPath «UiPath.ComputerVision.Activities» hinzuzufügen. Eine Demo zu AI Computer Vision kann unter diesem Link abgerufen werden:

(1) Der Algorithmus ist bereits in der Software integriert und wird auch von UiPath selbst verbessert, nicht vom User. Es benötigt demnach keine Vorlaufzeit und kein individuelles Anlernen des Machine Learning-Algorithmus, bevor man die Aktivitäten selbst anwenden kann. Falls jemand aus der UiPath Community ein Element in einer virtuellen Umgebung entdeckt, welches noch nicht identifizierbar ist, kann das Element oder der Bereich mit einer einfachen Funktion an UiPath gemeldet werden. Dies verbessert AI Computer Vision für alle Entwickler und Anwender.

Routinuum GmbH - Ihr Integrationspartner?

Unser Unternehmen ist spezialisiert in der Konzeption und Umsetzung von RPA-Projekten und ein UiPath Partner. Wir begleiten unsere Kunden in allen Projektphasen, um die Möglichkeiten dieser Technologie langfristig in der jeweiligen Organisation zu verankern. Haben wir Ihr Interesse geweckt? Kontaktieren Sie uns gerne unverbindlich, um mehr Informationen zum Thema zu erhalten oder die Einsatzmöglichkeiten in Ihrem Unternehmen zu besprechen.

Roman Tobler, +41 76 464 42 84, roman.tobler@routinuum.ch

Routinuum GmbH - Challenge Routine. - www.routinuum.ch

RPA Software-Komponenten

In diesem Beitrag wird der grundsätzliche Aufbau einer Robotic Process Automation-Software und deren Komponente weiter aufgebohrt. Ein RPA-Werkzeug besteht in der Regel aus drei verschiedenen Teilen, welche nachfolgend detailliert vorgestellt werden:

  • Entwicklungsumgebung (Studio)
  • Ablaufumgebung (Orchestrator / Steuerzentrale)
  • "Software-Roboter", mithilfe deren die Prozesse auf einem Rechner oder Server ausgeführt werden

Jede Komponente hat eigene Eigenschaften und wird in einer grösseren Installation von unterschiedlichen Benutzern benutzt und bedient. Somit werden entsprechende Rechte & Zugriffe verwaltet, um vorbeugend einigen IT-Sicherheitsaspekten gerecht zu werden. Als erstes wird das Studio zur Entwicklung der "Roboterprozesse" vorgestellt.

RPA - Software-Komponenten

Entwicklungsumgebung (Studio)

Die Workflows und Aktivitäten werden in einer Studio-Software mittels Drag-and-Drop-Funktionalität zusammengestellt und entsprechend konfiguriert. Alternativ - oder ergänzend - können (Teil-)Abläufe direkt von einem User ausgeführt und zugleich mit einem Rekorder aufgezeichnet werden - analog dem Makro Rekorder in VBA, wie man ihn vielleicht bereits aus einem Produkt der Microsoft Office-Palette kennt. Die entwickelten Prozesse können jederzeit mittels Debugging Schritt für Schritt ausgeführt und getestet werden. Eine gewisse Skalierbarkeit beim Automatisieren von Prozessen ist ebenfalls gegeben: (Teil-)Prozesse in anderen Abläufen können als sogenannte "Snippets" wiederverwendet werden. Ein Entwickler kann so gleiche Arbeitsschritte in einen anderen Prozess integrieren.

Obschon die Prozesse grundsätzlich von Entwicklern basierend auf den fachlichen Anforderungen erarbeitet und aufgezeichnet werden, führt ein Developer diese nicht selbst in der Produktionsumgebung aus. Eine explizite Trennung der Development, UAT und Live-Umgebung wird klar empfohlen. Um das Potenzial des RPA-Werkzeuges vollumfänglich zu nutzen und Security-Aspekten gerecht zu werden, sind weitere Software-Komponenten notwendig.

Live-Umgebung (Orchestrator / Steuerzentrale & Robot)

In der Live-Umgebung ist einerseits eine Steuerzentrale (Orchestrator / Management Konsole) vorzufinden. Fertiggestellte Prozesse werden auf diese Plattform hochgeladen und dort genehmigt - mit entsprechendem Versionsverlauf. In dieser Steuerzentrale lassen sich Benutzer, Rechte sowie alle Prozesse und Geräte verwalten. Zudem können Abläufe manuell gestartet oder aber auch Terminplanungen für die automatische Ausführung eingepflegt werden. Logs und generelle Monitoring-Funktionen geben Auskunft über die Roboter-Aktivitäten und helfen sowohl bei der Verbesserung der Prozesse wie auch beim Auditing.

Die dritte Komponente einer RPA-Software besteht aus den "Software-Robotern" selbst. Es handelt sich keineswegs um physische Roboter, die beispielsweise in einer Produktionshalle vorzufinden sind. Sehr vereinfacht gesagt imitiert die Software die Maus- und Tastaturbefehle, die ein Benutzer bei der Ausführung des Prozesses durchführt. Eine wichtige Unterscheidung besteht darin, dass es begleitete und unbegleitete Roboter (attended/unattended) gibt. Ein begleiteter Roboter wird auf dem Gerät des Benutzers ausgeführt und im Normalfall durch den User selbst gestartet. Der Nutzer wird somit spezifisch unterstützt, der Roboter benötigt jedoch Input und die Entscheidungen des Benutzers. Ein unbegleiteter Roboter arbeitet hingegen im Hintergrund oder gar auf einem Server. Die Prozesse werden basierend auf verschiedenen Ereignissen oder aufgrund der Scheduling-Möglichkeiten in der Steuerzentrale automatisch gestartet. Bei der unbegleiteten Robotic Process Automation werden die Aktivitäten im Hintergrund ausgeführt, somit ist die Geschwindigkeit bei der Ausführung zudem höher, da die Elemente nicht zusätzlich am Bildschirm des Benutzers dargestellt werden müssen. Je nach Prozess ist zu evaluieren, welche Art von Software-Roboter geeignet ist. Es ist zudem denkbar, dass begleitete Roboter in einer ersten Phase implementiert werden, damit sich die User und die gesamte Organisation an die neuen Möglichkeiten und den Umgang mit den Software-Robotern gewöhnen können. Dieses Vorgehen kann die Akzeptanz fördern und sich somit positiv auf das Change Management und die Kommunikation innerhalb des Unternehmens auswirken.

Abschliessende Überlegungen und Anmerkungen

Auf dem Markt finden sich eine Vielzahl an RPA-Software-Anbieter und die Komponenten werden je nach Produkt unterschiedlich benannt. Im Grundsatz sind die Plattformen jedoch gleich aufgebaut und haben ihre relativen Stärken und Schwächen. Wir (mit der Firma Routinuum) sind spezialisierter Integrationspartner der RPA-Software von UiPath. Die drei Komponenten heissen da UiPath Studio, UiPath Orchestrator und UiPath Robot. Die obige Darstellung der Komponenten ermöglicht ein genaueres Verständnis einer RPA-Software. In der effektiven Umsetzung eines RPA-Projektes kann die Architektur etwas detaillierter sein und richtet sich nach den Anforderungen des Unternehmens.