UiPath Excel AddIn - Einführung und Installation

Das Excel AddIn von UiPath erlaubt es, umfassende Anwendungsfälle aus einer beliebigen Excel-Datei zu starten. Somit können Daten in der aktuellen Datei angereichert oder auch in andere Zielsysteme weitergereicht werden. In diesem Blog zeige ich Dir, wie Du das AddIn installierst und im Weiteren, wie Du einen Prozess dafür bauen könntest. Voraussetzung für die Verwendung des Add-In ist, dass UiPath Assistant (Version 2023.4.2 oder höher) auf dem Gerät installiert ist. Das würde für das Ausführen von Prozessen reichen. Für die Entwicklung von Prozessen benötigst Du "UiPath Studio".

Installationsanleitung

Du könntest das Add-In direkt aus dem Microsoft Store via diesem Link abrufen: https://appsource.microsoft.com/en-us/product/office/WA200005457?flightCodes=UiPathAssistantExcel

Öffne alternativ eine neue Excel-Mappe und gehe unter dem Menüpunkt "Einfügen" auf "Add-Ins abrufen":

ExcelAddIn_Installer_Store

Daraufhin kannst Du nach dem Add-In "WA200005457" suchen und den "UiPath Assistant for Excel" hinzufügen:

ExcelAddIn_Installer_AddIn

Der UiPath Assistant für Excel wird daraufhin verfügbar sein, in meinem Fall noch "ohne Excel Automationen (Prozesse)":

ExcelAddIn_Assistant_empty

Falls Du an der Manifest-Datei interessiert wärst, finde sämtliche Informationen unter diesem Kapitel in der offiziellen UiPath Dokumentation: https://docs.uipath.com/robot/standalone/2023.4/user-guide/excel-add-in#using-the-manifest-file

Entwickeln eines Prozesses in UiPath Studio

Du könntest simple Prozesse und Funktionalitäten von Grund auf bauen. Es gibt jedoch unter den "Templates" (Vorlagen) den folgenden Inhalt, mit welchem die spezifischen Excel-Cases einfacher gebaut werden können. Suche einfach nach "Excel" und Du wirst "UiPath Assistant for Excel Process" finden.

ExcelAddIn_UiPath_Template

Selbstverständlich ist dies lediglich ein "Template", das womöglich Exception-Handling oder Vorgaben Deiner Organisation nicht berücksichtigt, aber für den Umgang mit einer geöffneten Excel-Datei (für den UiPath Assistant) sehr geeignet ist. Die Vorlage beinhaltet einen Subworkflow "Parse Excel Selection", damit die Benutzerauswahl von Zelle(n) interpretiert werden kann. In der Haupt-Sequenz (Main) ist der Umgang mit dem aktuellen Excel-Tabellenblatt vorbereitet. Füge die gewünschten Interaktionen ein, die auf Basis des Excels vorgenommen werden sollen. Das können auch Interaktionen mit dem Web, lokalen Applikationen (Legacy-Systemen) oder APIs sein, um weitreichende Anwendungsfälle zu verarbeiten. In der Vorlage finden sich zudem zwei dynamische Parameter, die diese Vorhaben ermöglichen:

  • in_FilePath (String) - bezieht sich auf den Dateipfad, von welchem das Add-In den Prozess startet.
  • in_Selection (String) - bezieht sich auf die Zelle(n), welche beim Start des Prozesses ausgewählt sind. Bestimmte Funktionalitäten im Prozess können also auf die Benutzer-Selektion im Spezifischen angewandt werden. Zum Beispiel: "Suche mir diese spezifischen Fremdwährungskurse" oder "Frage die selektierte(n) Kundennummer(n) im CRM ab und reichere sie mit bestimmten Daten an".

Nachdem der Prozess erarbeitet wurde, sollte dieser via UiPath Orchestrator veröffentlicht werden. Zunächst würdest Du den Prozess noch nicht im Excel Add-In sehen. Damit ein Prozess im AddIn ersichtlich wird, muss der veröffentlichte Process in UiPath Orchestrator mit dem Tag "excelAddin" versehen werden. Du findest die Einstellung in den Process-Settings auf Orchestrator:

ExcelAddIn_UiPath_ProcessTags

Somit habe ich einen Beispiel-Prozess, der mir für die gewünschten Währungs-Paare die Umrechnungskurse und ein Beispiel davon erarbeiten würde. Ich kann den Prozess jederzeit aus Excel starten und habe einen virtuellen Helfer (Assistant), welcher mich bei der täglichen Excel-Arbeit tatkräftig unterstützen kann.

ExcelAddIn_Assistant_ExchangeRate

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.