Abonnieren

UiPath Studio

UiPath Studio-Anleitung

Projektorganisation

High-Level Frameworks

Wenn Sie von einem generischen (und prozess-agnostischen) Framework aus starten, stellen Sie sicher, dass jeder Prozess konsistent und strukturiert abgewickelt wird. Ein Framework hilft Ihnen dabei mit einer Ansicht aus höchster Ebene zu starten, und dann gehen Sie tiefer auf die spezifischen Details jedes Prozesses ein.

804804

The Robotic Enterprise Framework Template proposes a flexible high-level overview of a repetitive process and includes a good set of practices described in this guide and can easily be used as a solid starting point for RPA development with UiPath. The template is built on a State Machine structure.

660660

Wie es funktioniert:

  • Der Roboter lädt die Einstellungen von der Konfigurationsdatei und den Orchestrator-Assets, und speichert sie in einem Lexikon, das über Workflows hinweg geteilt wird.
  • Der Roiter ruft die erforderlichen Anmeldedaten und Protokolle in alle Anwendungen ab.
  • Falls Fehler auftreten, versucht er es noch ein paarmal, bis er entweder erfolgreich ist oder abbricht.
  • Der Roboter prüft die Eingabewarteschlange oder andere Eingabequellen, um eine neue Transaktion zu starten.
  • Wenn keine Eingabedaten (mehr) verfügbar sind, wird der Workflow entweder auf Warten und erneut versuchen oder auf das Beenden des Prozesses konfiguriert.
  • Die UI-Interkationen zum Verarbeiten der Transaktionsdaten werden ausgeführt.
  • Wenn die Transaktionen erfolgreich verarbeitet wurden, wird der Transaktionsstatus aktualisiert und der Robooter fährt mit der nächsten Transaktion fort.
  • Wenn Validierungsfehler auftreten, wird der Transaktionsstatus aktualisiert und der Roboter fährt mit der nächsten Transaktion fort.
  • Wenn Ausnahmen auftreten, versucht der Roboter entweder, die Transaktion ein paarmal erneut zu verarbeiten (falls dies konfiguriert wurde) oder das Element wird als fehlerhaft markiert und der Roboter startet erneut.
  • Am Ende wird eine E-Mail mit dem Status des Prozesses gesendet, falls dies konfiguriert wurde.
631631

Für transaktionsbasierte Prozesse (wie beispielsweise die Verarbeitung aller Rechnungen von einer Excel-Datei), die nicht über Orchestrator ausgeführt werden, können lokale Warteschlangen erstellt werden ([mithilfe der .NET-Methode zum Einfügen/Entfernen von Warteschlangen][1]).
[1]: https://msdn.microsoft.com/en-us/library/t249c2y7(v=vs.110).aspx

414414

Danach kann der Fluss des Prozesses höchster Ebene (Ausnahmeverarbeitung, Neuversuch, Wiederherstellung) einfach repliziert werden – leichter als durch die Gruppierung des gesamten Prozesses in einer Für jede Zeile-Schleife.

232232

All the REFrameWork files, together with the documentation are found on this page.

Designprinzipien

Aufteilen des Prozesses in kleinere Workflows ist von höchster Wichtigkeit für gutes Projektdesign. Dedizierte Workflows ermöglichen das unabhängige Testen von Komponenten, während gleichzeitig die Team-Zusammenarbeit durch Entwicklungsarbeit an separaten Dateien gefördert wird.

Wählen Sie den Layouttyp vernünftig aus (Flowcharts und Sequences). Normalerweise verbleibt die Logik des Prozesses in den Flowcharts, während sich die Navigation und die Datenverarbeitung in den Sequences befindet.

Durch die Entwicklung komplexer Logik innerhalb einer Sequence werden Sie mit einem Labyrinth von Containern und Entscheidungsblöcken enden, die sehr schwierig nachzuverfolgen und zu aktualisieren sind.

Im Gegensatz dazu machen es UI-Interaktionen in einem Flowchart schwieriger zu erstellen und zu pflegen.

383383

Projektbezogene Dateien (wie E-Mail-Vorlagen) können in lokalen Ordnern oder auf freigegebenen Laufwerken organisiert werden.

📘

Hinweis:

Wenn sie innerhalb des Projektordners gespeichert werden, werden sie während des Bereitstellungsprozesses repliziert (zusammen mit den Projektworkflows) und zwar auf allen Robotermaschinen im Ordner lib/net45.

Diese Ordner könnten also auf einem freigegebenen Laufwerk gespeichert werden, damit alle Roboter sich mit der gleichen eindeutigen Quelle verbinden. Auf diese Art und Weise können die prozessbezogenen Dateien komplett von den Geschäftsbenutzern überprüft und gepflegt werden, ohne Unterstützung durch das RPA-Team. Diese Entscheidung (freigegebene oder lokale Ordner) ist jedoch komplex und es sollten dabei verschiedene Aspekte in Hinsicht auf den Prozess und die Umgebung in Betracht gezogen werden: die Größe der Dateien, die Änderungshäufigkeit, die Gleichzeitigkeit bei der Bearbeitung der gleichen Datei, Sicherheitsrichtlinien usw.

Quellenkontrolle

In order to easily manage project versioning and share the work on more developers, we recommend using a Version Control System. UiPath Studio is directly integrated with GIT, TFS, and SVN. You can find a tutorial explaining the connection steps and functionalities here.

Kontrolleinstellungen

Um das Hartkodieren externer Einstellungen in den Workflows zu vermeiden (wie Dateipfade, URLs usw.), empfehlen wir, sie in einer .config-Datei (.xlsx, .xml, oder .json) oder in Orchestrator als Assets aufzubewahren, falls sie sich oft ändern.

Im Allgemeinen bedeutet dies, dass die endgültige Lösung erweiterbar sein soll, damit Variationen und Änderungen der Eingabedaten ohne Entwicklerintervention möglich sind. So sollten beispielsweise Listen mit Kunden, die die Berechtigung für bestimmte Transaktionstypen haben, E-Mails von Personen, die Benachrichtigungen erhalten sollen usw. in externen Dateien gespeichert werden (wie etwa Excel), damit Geschäftsleute oder andere Abteilungen sie direkt ändern können (hinzufügen/entfernen/aktualisieren).

Für alle repetitiven Prozesse sollten alle Workflow-Aufrufe von der Hauptschleife mit der Option Isoliert (Isolated) markiert werden, damit sie vor möglichen Abstürzen von Robot (wie Out of Memory) geschützt sind.

Credentials

Im Workflow selbst sollten keine Anmeldedaten gespeichert werden. Sie sollten stattdessen aus sicheren Speicherorten wie dem Windows Credential Store oder Orchestrator-Assets geladen werden. In den Workflows können Sie sie über die Aktivität GetCredential abrufen.

Fehlerabwicklung

Wenn Sie einen automatisierten Prozess ausführen, können zwei Ausnahmen auftreten: etwas vorhersehabr oder komplett unerwartet. Basierend auf dieser Unterscheidung gibt es zwei Möglichkeiten, auf Ausnahmen zu reagieren, entweder durch explizite Aktionen, die automatisch innerhalb des Workflows ausgeführt werden, oder durch die Eskalation des Problems zu menschlichen Bearbeitern.

In Situationen, in denen Ausnahmen angetroffen werden können, ist es hilfreich, eine globale Ausnahmebearbeitung (Global Exception Handler) zum Automationsprojekt hinzuzufügen. Zu jedem Automationsprojekt kann nur ein Workflow dieser Art hinzugefügt werden. Für Bibliotheken steht die globale Ausnahmebearbeitung nicht zur Verfügung.

Der Workflow kann darauf eingestellt werden, das Verhalten des Workflows bei Antreffen einer Ausnahme festzulegen, indem die Bearbeitung den Fehler ignoriert und ab der nächsten Aktivität fortfährt, erneut versucht, die Aktivität, bei der der Fehler aufgetreten ist, zu starten, die Ausführung abbricht oder fortsetzt und der Fehler erneut auftritt.

Moreover, arguments contained in the Global Exception Handler can be set to log the name of the activity which threw the exception or retry the activity a number of times. For more information on how to use its arguments, check out the Global Exception Handler page.

Als Alternative zur globalen Ausnahmebearbeitung (Global Exception Handler) kann die Verbreitung von Ausnahmen gesteuert werden, indem anfälliger Code in Try/Catch-Blöcke eingefügt wird, in denen Situationen angemessen behandelt werden können. Auf der obersten Ebene muss das Hauptprozessdiagramm umfassende Korrekturmaßnahmen definieren, um alle allgemeinen Ausnahmen zu beheben und die Systemintegrität zu gewährleisten.

Kontext-Handler bieten mehr Flexibilität für Roboter, um sich an verschiedene Situationen anzupassen, und sie sollten für die Implementierung alternativer Techniken, Bereinigung oder Anpassung von Benutzer-/Protokollmeldungen verwendet werden. Nutzen Sie den vertikalen Verbreitungsmechanismus von Ausnahmen, um doppelte Handler in Catch-Abschnitten zu vermeiden, indem Sie den Handler um einige Ebenen nach oben bewegen, wo er alle Ausnahmen an einer einzigen Stelle abdecken kann.

In der Ausnahmemeldung sollten genügend Details angegeben werden, damit ein Mensch sie verstehen und die notwendigen Maßnahmen ergreifen kann. Ausnahmemeldungen und -quellen sind unerlässlich. Die Quell-Eigenschaft des Ausnahmeobjekts gibt den Namen der Aktivität an, die fehlgeschlagen ist (innerhalb eines aufgerufenen Workflows). Auch hier ist die Benennung wichtig, denn eine schlechte Benennung gibt keinen klaren Hinweis auf die Komponente, die abgestürzt ist.

Wie Sie unten sehen können, macht die Entscheidung, die Aktivität Aufrufen (Invoke) nicht umzubenennen, die Ausnahmequelle im Falle eines Absturzes bedeutungslos (z. B. Workflow-Datei aufrufen > Workflow-Datei aufrufen > Workflow-Datei aufrufen > Workflow-Datei aufrufen > Eingeben in).

236236

Sauber halten

Stellen Sie im Prozessablauf sicher, dass Sie die Zielanwendungen (Browser, Apps) schließen, nachdem die Roboter mit ihnen interagiert haben. Wenn sie offen gelassen werden, nutzen sie die Maschinenressourcen und können die anderen Schritte der Automatisierung stören.

Bevor Sie das Projekt veröffentlichen, werfen Sie einen letzten Blick auf die Workflows und bereinigen Sie diese:

  • Entfernen Sie nicht referenzierte Variablen
  • Löschen Sie temporäre Zeile schreiben (Write Line)-Ausgaben
  • Lölschen Sie deaktivierten Code.
  • Stellen Sie sicher, dass die Benennung aussagekräftig und eindeutig ist.
  • Entfernen Sie unnötige Behälter (Rechtsklick > Sequence entfernen).

Auch der Projektname ist wichtig. So wird der Prozess in Orchestrator gesehen, daher sollte er mit Ihren internen Benennungsregeln übereinstimmen. Standardmäßig ist die Projekt-ID der ursprüngliche Projektname, aber Sie können sie aus der Datei project.json ändern.

Die Beschreibung des Projekts ist ebenfalls wichtig (dies wird in Orchestrator angezeigt). Es könnte Ihnen helfen, einfacher zwischen den Prozessen zu unterscheiden, also wählen Sie auch eine aussagekräftige Beschreibung.

Wiederverwendbarkeit von Code

Bei der Entwicklung müssen wir oft die gleichen Schritte in mehr als einem Workflow/Projekt automatisieren, daher sollte es eine gängige Praxis sein, Workflows zu erstellen, die kleine Teile der auftretenden Automatisierung enthalten und diese der Bibliothek hinzufügen.

Es gibt kein Universalrezept, das Ihnen sagt, wie Sie einen bestimmten Prozess aufteilen müssen.

Die Trennung der Geschäftslogik von den Automatisierungskomponenten ist jedoch ein gutes Prinzip, das beim Aufbau eines Codes hilft, der effektiv wiederverwendet werden kann.

Beispiel

Nehmen wir an, dass ein Teil Ihres Prozesses das Lesen der Kundeninformationen erfordert, dann aktualisieren Sie basierend auf diesen Informationen und internen Geschäftsregeln die Kundendaten.

Get Customer Info und Change Customer Info sollten zwei verschiedene Automatisierungskomponenten sein, die von jedem Prozess völlig unabhängig sind. Die Logik (Aktualisierung des Kundentyps nur, wenn der Gesamtbetrag in den letzten 12 Monaten größer als 100.000 ist) sollte von der Automatisierung getrennt gehalten werden. Beide Komponenten können später, einzeln, im selben Projekt oder in einem anderen, mit einer anderen Logik verwendet werden. Bei Bedarf können spezifische Daten über Argumente an diese Komponenten gesendet werden.

Change Customer Info sollte nicht aus Get Customer Info heraus aufgerufen werden, da dies das Testen, Behandeln von Ausnahmen und die Wiederverwendung erschwert.

📘

Empfehlung:

Verwenden Sie separate Komponenten für Get Info und Change Info.

392392

Wenn die Trennung zwischen den Aktionen nicht so offensichtlich ist, ist das Kopieren von bestehendem Code von einem Workflow in einen anderen (oder von einem Projekt in ein anderes) auch ein guter Hinweis darauf, dass Sie eine separate Komponente (Workflow) für den Code erstellen und ihn bei Bedarf aufrufen sollten.

Wo speichern Sie wiederverwendbare Komponenten?

Das Ziehen und Ablegen von vorhandenem Code aus der Bibliothek in einen Workflow ist einfacher, als den Code immer wieder neu zu erstellen. Der Umgang mit Daten (Sortieren, Filtern) oder mit Text (Splitten, Regex-Muster) sind Beispiele dafür, was der Beispielbibliothek hinzugefügt werden kann. Bitte beachten Sie, dass der Code, sobald er dem Workflow hinzugefügt wurde, statisch wird. Wenn Sie also den Workflow in der Bibliothek aktualisieren, wird er sich nicht in den bestehenden Live-Prozessen widerspiegeln.

Gängige (wiederverwendbare) Komponenten (wie App-Navigation, Anmeldung, Initialisierung) werden besser separat auf netzwerkfreigeschalteten Laufwerken gespeichert und gepflegt. Von diesem Laufwerk aus können sie von verschiedenen Robotern, von verschiedenen Prozessen aus aufgerufen werden. Der größte Vorteil dieses Ansatzes besteht darin, dass sich jede Änderung an der Master-Komponente sofort in allen Prozessen widerspiegelt, die sie verwenden.

So überprüfen Sie die Qualität der Automatisierung

  • Modularität:
    • Die Trennung von Anliegen mit dedizierten Workflows ermöglicht feingranulare Entwicklung und Testen;
    • Extrahieren und teilen Sie wiederverwendbare Komponenten oder Workflows zwischen Projekten.
  • Instandhaltbarkeit:
    • Gute Struktur- und Entwicklungsstandards.
  • Lesbarkeit:
    • Standardisierte Prozessstruktur mit klaren Entwicklungspraktiken;
    • Aussagekräftige Namen für Workflow-Dateien, Aktivitäten, Argumente und Variablen.
  • Flexibilität:
    • Speichern Sie die Umgebungseinstellungen in externen Konfigurationsdateien oder Orchestrator-Instanzen, so dass Sie die Automatisierung sowohl in Test- als auch in Produktionsumgebungen problemlos durchführen können.
  • Zuverlässigkeit:
    • Ausnahmebehandlung und Fehlermeldung;
    • Aktualisierung des Fortschritts der Ausführung in Echtzeit.
  • Erweiterbar:
    • Bereit für die Aufnahme neuer Anwendungsfälle.

Aktualisiert vor 2 Jahren

Projektorganisation


Auf API-Referenzseiten sind Änderungsvorschläge beschränkt

Sie können nur Änderungen an dem Textkörperinhalt von Markdown, aber nicht an der API-Spezifikation vorschlagen.