- Versionshinweise
- Erste Schritte
- Einstellung und Konfiguration (Setup and Configuration)
- Automationsprojekte
- Über die Veröffentlichung von Automatisierungsprojekten
- Entwerfen von Automatisierungen
- Verwalten von Aktivitätspaketen
- Konfigurieren von Aktivitätsprojekteinstellungen
- Signieren von Paketen
- Governance
- Importieren von Entitäten
- Moderne Designumgebung
- Verknüpfen eines Projekts mit einer Idee im Automation Hub
- Verwenden des Data Managers
- Abhängigkeiten
- Workflow-Typen
- Kontrollfluss
- Dateivergleich
- Beste Praktiken für die Automatisierung (Automation Best Practices)
- Integration der Quellenkontrolle
- Informationen zur Versionskontrolle
- Verwalten von Projekten mit TFS
- Verwalten von Projekten mit SVN
- Workflow Diff
- Debugging
- Protokollierung
- Das Diagnose-Tool
- Workflow-Analyse
- Über die Workflow-Analyse
- ST-NMG-001 – Namenskonvention für Variablen
- ST-NMG-002 – Namenskonvention für Argumente
- ST-NMG-004 – Duplizierung des Anzeigenamens
- ST-NMG-005 – Variable überschreibt Variable
- ST-NMG-006 – Variable überschreibt Argument
- ST-NMG-008 – Variablenlänge überschritten
- ST-NMG-009: Datentabellenvariablen mit Präfix versehen
- ST-NMG-011 – Datentabellenargumente mit Präfix versehen
- ST-NMG-012 – Standardwerte für Argumente
- ST-NMG-016 – Argumentlänge überschritten
- ST-NMG-017 – Der Klassenname stimmt mit dem Standard-Namespace überein
- ST-DBP-002 – Hohe Anzahl von Argumenten
- ST-DBP-003 – Leerer Catch-Block
- ST-DBP-007 – Mehrere Flussdiagrammebenen
- ST-DPB-010 – Mehrere Instanzen von [Workflow] oder [Testfall]
- ST-DBP-020 – Nicht definierte Ausgabeeigenschaften
- ST-DBP-021 – Hartcodiertes Timeout
- ST-DBP-023 – Leerer Workflow
- ST-DBP-024 – Prüfung der Persistenzaktivität
- ST-DBP-025 – Voraussetzung für Variablenserialisierung
- ST-DBP-026 – Verwendung der Verzögerungsaktivität
- ST-DBP-027 – Bewährte Methode für Persistenz
- ST-DBP-028 – Voraussetzung für Argumentenserialisierung
- ST-USG-005 – Hartcodierte Aktivitätsargumente
- ST-USG-009 – Nicht verwendete Variablen
- ST-USG-010 – Nicht verwendete Abhängigkeiten
- ST-USG-014 – Paketbeschränkungen
- ST-USG-020 – Minimale Protokollmeldungen
- ST-USG-024 – Nicht verwendet, gespeichert für später
- ST-USG-025 – Missbrauch gespeicherter Werte
- ST-USG-026 – Aktivitätseinschränkungen
- ST-USG-027 – Erforderliche Pakete
- ST-USG-028 – Aufruf von Dateivorlagen einschränken
- ST-USG-032 – Erforderliche Tags
- ST-USG-034 – Automation Hub-URL
- Variablen
- Argumente
- Importierte Namespaces
- Codierte Automatisierungen
- Einleitung
- Registrieren von benutzerdefinierten Diensten
- „Vor“- und „Nach“-Kontexte
- Generieren von Code
- Generieren eines codierten Testfalls aus manuellen Testfällen
- Triggerbasierte Attended-Automatisierung
- Aufzeichnung
- UI-Elemente
- Selektoren
- Objekt-Repository
- Data-Scraping
- Bild- und Textautomatisierung
- Citrix Technologies Automation
- RDP-Automatisierung
- VMware Horizon-Automatisierung
- Salesforce-Automatisierung
- SAP-Automation
- macOS UI-Automatisierung
- Das Tool ScreenScrapeJavaSupport
- Das WebDriver-Protokoll
- Erweiterungen
- Über Erweiterungen
- SetupExtensions-Tool
- „UiPathRemoteRuntime.exe“ wird nicht in der Remotesitzung ausgeführt.
- UiPath Remote Runtime blockiert das Schließen der Citrix-Sitzung
- UiPath Remote Runtime verursacht Speicherverlust
- UiPath.UIAutomation.Activities package and UiPath Remote Runtime versions mismatch
- Die erforderliche UiPath-Erweiterung ist auf der Remotemaschine nicht installiert
- Einstellungen für die Bildschirmauflösung
- Group Policies
- Kommunikation mit Browser nicht möglich
- Die Chrome-Erweiterung wird automatisch entfernt
- Möglicherweise ist die Erweiterung beschädigt
- Überprüfen Sie, ob die Erweiterung für Chrome installiert und aktiviert ist
- Überprüfen Sie, ob ChromeNativeMessaging.exe ausgeführt wird
- Überprüfen der korrekten Definition der ComSpec-Variablen
- Aktivieren Sie den Zugriff auf Datei-URLs und den Inkognito-Modus
- Mehrere Browser-Profile
- Group Policy conflict
- Spezifische bekannte Probleme für MV3-Erweiterungen
- Liste der Erweiterungen für Chrome
- Chrome-Erweiterung für Mac
- Group Policies
- Kommunikation mit Browser nicht möglich
- Die Edge-Erweiterung wird automatisch entfernt
- Möglicherweise ist die Erweiterung beschädigt
- Überprüfen, ob die Erweiterung für Microsoft Edge installiert und aktiviert ist
- Überprüfen Sie, ob ChromeNativeMessaging.exe ausgeführt wird
- Überprüfen der korrekten Definition der ComSpec-Variablen
- Aktivieren des Zugriffs auf Datei-URLs und den InPrivate-Modus
- Mehrere Browser-Profile
- Group Policy conflict
- Spezifische bekannte Probleme für MV3-Erweiterungen
- Liste der Erweiterungen für Edge
- Erweiterung für Safari
- Erweiterung für VMware Horizon
- Erweiterung für Amazon WorkSpaces
- SAP Solution Manager-Plugin
- Excel-Add-in
- Test Suite – Studio
- Fehlersuche und ‑behebung
- Informationen zur Fehlerbehebung
- Microsoft App-V – Unterstützung und Einschränkungen
- Fehlerbehebung bei Internet Explorer x64
- Probleme in Microsoft Office
- Erkennen von UI-Elementen in PDF mit Zugriffsoptionen.
- Reparieren der Active Accessibility-Unterstützung
- Die Validierung großer Windows-Legacy-Projekte dauert länger als erwartet
Einleitung
Mit codierten Automatisierungen können Sie Automatisierungen mit Code anstelle von Drag-and-Drop-Aktivitäten erstellen, wodurch die gemeinsame Arbeit an komplexen Projekten ermöglicht wird. In codierten Workflows und Testfällen können Sie UiPath-Dienste (entsprechen Aktivitätspaketen), APIs (ähneln Aktivitäten), externe .NET-NuGet-Pakete und Ihre benutzerdefinierten C#-Klassen in UiPath Studio verwenden. Dies erleichtert die Integration in externe Systeme, Datenbanken, APIs und andere Dienste.
Codierte Workflows verhalten sich genau wie Standard-Workflows, d. h. sie können auch in Standard-UiPath-Workflows aufgerufen werden und umgekehrt, indem die Aktivität Invoke Workflow File verwendet wird.
Zudem können im Code definierte Typen wie Aufzählungen als Eingaben in Standard-UiPath-Workflows verwendet werden.
Es gibt drei Arten codierter Automatisierungen:
- Codierte Workflows – Zum Entwerfen von Workflows in Code.
- Codierte Testfälle – Zum Entwerfen von Testfällen.
- Codequelldateien – Zum Erstellen von Code, den Sie später in anderen codierten Dateitypen aufrufen können.
UiPath.CodedWorkflows
vorinstalliert. Das Paket enthält die Basis-Klasse CodedWorkflowBase
und die CodedWorkflow
.
Das Paket ist vorinstalliert, wenn:
- Sie erstellen ein neues Projekt mit mindestens Version 23.10 von System.Activities, Testing.Activities oder UIAutomation.Activities oder einem anderen Aktivitätspaket, das codierte Workflows unterstützt.
- Sie erstellen einen neuen Codierten Workflow, einen Codierten Testfall oder eine Codequelldatei in Ihrem Projekt.
Wenn Sie in den angegebenen Szenarien keine codierten Automatisierungen verwenden können, laden Sie das Paket über das Menü Pakete verwalten herunter.
Hier sind einige der Vorteile der Verwendung von codierten Automatisierungen:
- Verbesserte Produktivität – Wenn Sie mit dem Programmieren oder Skripten vertraut sind, können Sie Ihre Fähigkeiten nutzen und Ihre Produktivität steigern. Die Arbeit in einer vertrauten Programmierumgebung ermöglicht es Ihnen, effizientere Automatisierungen zu entwickeln.
- Komplexitätsmanagement – Codierte Automatisierungen bieten eine flexible Lösung für die Verwaltung komplexer Automatisierungsszenarien. Mithilfe von Code können Sie benutzerdefinierte Logik implementieren, Ausnahmen verwalten und wiederverwendbare Funktionen erstellen.
- Hybride Automatisierung – Sie können abwechselnd codierte Automatisierungen und Low-Code-Automatisierungen verwenden. Das ermöglicht eine nahtlose Integration zwischen den beiden Ansätzen, sodass Sie flexible Automatisierungslösungen erstellen können.
- Verbesserte Leistung – Mit codierten Automatisierungen können Sie Ihre Automatisierungs-Workflows optimieren, um die Leistung zu verbessern. Mithilfe von Code können Sie bestimmte Algorithmen implementieren, um Ihre Automatisierungen schneller auszuführen.
- Lesbarkeit – Mit codierten Automatisierungen können Sie strukturierten Code erstellen, wodurch eine bessere Lesbarkeit des Codes erzielt wird. Wenn Sie Ihren Code organisieren und dokumentieren, können Sie ihn einfach anpassen und für andere Mitarbeitende freigeben.
Codierte Automatisierungen verfügen über ein strukturiertes Design mit Namespaces, Hilfsklassen und Einstiegspunktmethoden. Das Framework codierter Automatisierungen ermöglicht es Ihnen, sie mit der Programmiersprache C# zu schreiben.
Folgen Sie der detaillierten Struktur einer codierten Automatisierung, wie in den folgenden Abschnitten beschrieben.
Wenn Sie eine codierte Automatisierung erstellen, wird automatisch ein Namespace mit dem Namen des Studio-Projekts generiert. Wenn Ihr Studio-Projekt beispielsweise „My project“ heißt, lautet der Namespace für alle codierten Automatisierungen „Myproject“.
Und wenn Sie eine codierte Automatisierung in einem Ordner in Ihrem Studio-Projekt erstellen, ist der Namespace der Name des Projekts und der Name des Ordners. Wenn Ihr Studio-Projekt beispielsweise „My project“ heißt und der Ordner „place“, dann ist der Namespace „Myproject.place“.
CodedWorkflow
aus dem Paket UiPath.CodedWorkflows. Diese Klasse gewährt der Automatisierung Zugriff auf die erforderlichen Schnittstellen für Dienste (entspricht Aktivitätspaketen), basierend auf den installierten Aktivitätspaketen in Ihrem Projekt.
Codierter Workflow
CodedWorkflow
und erstellen eine Beziehung des Typs CodedAutomationExample : CodedWorkflow
. Das bedeutet, dass die Klasse CodedAutomationExample
Attribute, Methoden und Funktionen von der Klasse CodedWorkflow
erbt. Im Wesentlichen kann sie die Funktionen aufrufen und verwenden, die in der Klasse CodedWorkflow
definiert sind, was eine Grundlage für die codierte Automatisierung bildet und es einfacher macht, darauf aufzubauen und das Verhalten der Automatisierung anzupassen.
CodedWorkflow
wird als partielle Klasse deklariert, sodass Sie ihre Funktionen erweitern können, indem Sie die gleiche partielle Klasse CodedWorkflow
in einer Codequelldatei definieren. So können Sie neue Felder und Methoden hinzufügen, um das Verhalten Ihrer codierten Automatisierungen weiter anzupassen. Mit diesem Ansatz können Sie eine Vor- und Nach-Schnittstelle speziell für codierte Testfälle implementieren.
CodedWorkflow
die Klasse CodedWorkflowBase
.
CodedWorkflowBase
CodedWorkflowBase
enthält die integrierten Funktionen, die eine codierte Automatisierung erbt. Diese Klasse enthält Methoden und spezifische Eigenschaften für die Verwaltung von Workflowinstanzen, den Runtime-Zugriff, die Verarbeitung von Dienstcontainern und die Konfiguration von Umgebungskontexten. Die Klasse CodedWorkflowBase
bietet auch eine weitere separate Methode für die Protokollierung, die Sie selbst anpassen können.
CodedWorkflowBase
anzuzeigen.
CodedWorkflowBase
-Methoden in der folgenden Tabelle an:
Method | Beschreibung |
---|---|
ICodedWorkflowServices services Hinweis: Wir empfehlen Ihnen, die Methoden
Log , BuildClient und RunWorkflow in der Klasse services und den dazugehörigen Diensten zu verwenden, anstatt sie als eigenständige, sofort verfügbare Methoden zu nutzen.
| Bietet Zugriff auf die verfügbaren Dienste für codierte Workflows, z. B.:
|
serviceContainer(ICodedWorkflowServiceContainer) Hinweis: Dies wurde durch
ICodedWorkflowServices services ersetzt. Wenn Sie diese Syntax weiterhin verwenden, erhalten Sie eine Warnung, die Sie auf die Verwendung der neuen services.Container -Syntax verweist.
| Bietet Zugriff auf den Container für die Abhängigkeitsinjektion, der für den aktuellen codierten Workflow spezifisch ist. Dieser Container, der als Dienstcontainer bezeichnet wird, ermöglicht es Ihnen, Instanzen von Diensten abzurufen, die darin registriert wurden. |
GetRunningJobInformation() | Ruft Informationen über den aktuell ausgeführten Auftrag im Kontext des codierten Workflows ab. Die Methode greift auf die Eigenschaft RunningJobInformation des Objekts executorRuntime zu, die Informationen über Auftragsstatus, Fortschritt, Parameter und Zeitstempel enthält.
|
Log(string message, LogLevel level = LogLevel.Info, IDictionary<string, object> additionalLogFields = null) | Fügt zusätzliche Protokollfelder zu Protokollmeldungen mit angegebenen Attributen hinzu. |
RunWorkflow(string
workflowFilePath, IDictionary<string, object> inputArguments = null, TimeSpan? timeout = null, bool isolated = false,
InvokeTargetSession targetSession = InvokeTargetSession.Current) | Stellt eine Struktur zum Ausführen eines Workflows im Kontext der angegebenen Workflow-Runtime bereit. Sie kann Parameter festlegen, eine potenzielle Isolierung verarbeiten und die Workflowausführung initiieren. Die zurückgegebene Aufgabe enthält die Ergebnisse des ausgeführten Workflows, einschließlich seiner Ausgabe und Eingabe-/Ausgabe-Argumente. |
RunWorkflowAsync(string
workflowFilePath, IDictionary<string, object> inputArguments = null, TimeSpan? timeout = null, bool isolated = false,
InvokeTargetSession targetSession = InvokeTargetSession.Current) | Stellt eine Struktur zum asynchronen Ausführen eines Workflows im Kontext der angegebenen Workflow-Runtime bereit. Sie kann Parameter festlegen, eine potenzielle Isolierung verarbeiten und die Workflowausführung initiieren. Die zurückgegebene Aufgabe enthält die Ergebnisse des ausgeführten Workflows, einschließlich seiner Ausgabe und Eingabe-/Ausgabe-Argumente. |
DelayAsync(TimeSpan time) und DelayAsync(int delayMs) | Hält die Ausführung asynchron für einen bestimmten Zeitraum an. |
Delay(TimeSpan time) und Delay(int delayMs) | Hält die Ausführung für einen bestimmten Zeitraum an. |
HttpClient BuildClient (string scope = "Orchestrator", bool force = true) | Erstellt einen HTTP-Client mit einem angegebenen Scope und Zugriffstoken. |
RegisterServices (ICodedWorkflowsServiceLocator serviceLocator) | Registriert Dienste (Aktivitätspakete) im Dienst-Locator des codierten Workflows. Sie können dies überschreiben, wenn Sie benutzerdefinierte Dienste in den Container für die Abhängigkeitsinjektion einfügen möchten. Hier erfahren Sie, wie Sie benutzerdefinierte Dienste (codierte Aktivitätspakete) erstellen und verwenden. |
Execute()
und wird entweder als Workflow
oder TestCase
zugeordnet. Sie können den Namen der Methode ändern, solange Sie ihn entweder Workflow
oder TestCase
zuordnen.
Execute()
-Methode ([TestCase]
oder [Workflow]
) innerhalb einer Datei verwenden, welche die Klasse Coded Workflow
erbt.
In dieser Methode können Sie Eingabe- und/oder Ausgabeargumente hinzufügen, die In-, Out- oder In/Out-Argumenten in Low-Code-Automatisierungen entsprechen. Im Tutorial Arbeiten mit Eingabe- und Ausgabeargumenten erfahren Sie, wie Sie Argumente in codierten Automatisierungen verwenden.
Execute()
-Methode leicht als Einstiegspunkte identifizieren.
Projektkompatibilität
Sie können codierte Automatisierungen nur in Windows- und plattformübergreifenden Projekten verwenden.
System.Activities
nicht nur ein Aktivitätspaket in Low-Code-Automatisierungen, sondern auch ein Dienst in codierten Automatisierungen. Ein Dienst verfügt über APIs, die Aktivitäten in einem Aktivitätspaket ähneln und mit denen Sie codierte Automatisierungen erstellen können.
Die folgenden Dienste sind für die Verwendung in codierten Automatisierungen verfügbar:
Dienst | Version |
---|---|
System.Activities | 23.10 und höher |
UiAutomation.Activities | 23.10 und höher |
Testing.Activities | 23.10 und höher |
MobileAutomation.Activities | 23.12-Vorschau und höher |
Mail.Activities | 1.22.1 und höher |
Excel.Activities | 2.23.2-Vorschau und höher |
Um Aktivitätspakete in codierten Automatisierungen zu verwenden, führen Sie die folgenden Schritte aus:
- Laden Sie das Aktivitätspaket herunter, das einem Dienst entspricht, so wie Sie bei Low-Code-Automatisierungen vorgehen würden. Dadurch erhalten Sie eine Sammlung von APIs, die Sie in Ihrem Code verwenden können.
- Rufen Sie die APIs in den Diensten mit folgendem Format auf: service.API. Wenn Sie beispielsweise die GetAsset-API verwenden möchten, rufen Sie sie mit
system.GetAsset
auf. - APIs haben Parameter anstelle von Eigenschaften. Nach dem Aufrufen einer API können Sie deren Parameter konfigurieren, indem Sie Werte in Klammern angeben. Wenn Sie z. B. ein Asset mit dem Namen
Email Address
in der Orchestrator-Instanz haben, mit der Sie verbunden sind, können Sie den Namen dieses Assets alsString
an die API übergeben:system.GetAsset("Email Address")
.