Studio
2023.10
False
Best practices - Standalone 2023.10
Bannerhintergrundbild
Logo
Studio-Benutzerhandbuch
Letzte Aktualisierung 8. Februar 2024

Best Practices

Um sicherzustellen, dass Ihre codierten Automatisierungen effizient, anpassbar und skalierbar sind, müssen Sie Best Practices befolgen. Dieser Abschnitt bietet einen Überblick über die wichtigsten Best Practices, die Sie sich merken sollten, wenn Sie Code zum Entwickeln von Automatisierungslösungen nutzen möchten. Die Verwendung dieser Best Practices hilft Ihnen, codierte Automatisierungen zu entwickeln, insbesondere wenn Sie Ihren Code strukturieren, Strategien zur Fehlerbehandlung implementieren oder wiederverwendbare Komponenten erstellen.

Parallelität

Parallelität verbessert die Leistung, und die Implementierung in codierte Automatisierungen ist einfacher. Eine For Each-Schleife kann die Ausführungsgeschwindigkeit einer Automatisierung erhöhen.

Codierter Workflow – Vererbung

Vererbung bei codierten Workflows fördert die Wiederverwendbarkeit und Modularität des Codes und ermöglicht es Ihnen, eine Hierarchie von Klassen zu erstellen, in der untergeordnete Klassen die Funktionen der übergeordneten Klassen erben und erweitern. Diese Vererbungshierarchie erleichtert die Organisation des Codes und vermeidet Duplikate allgemeiner Funktionen bei verschiedenen Klassen. Zudem vereinfacht sie die Wartung und Aktualisierungen, da Änderungen an der übergeordneten Klasse automatisch auf die untergeordneten Klassen übertragen werden, wodurch die Gefahr von neuen Fehlern oder Inkonsistenzen verringert wird.
Wir demonstrieren mit drei Klassen, wie die Vererbung funktioniert: CodedWorkflow, ParentFile (eine Zwischenklasse, die CodedWorkflow erbt und eine benutzerdefinierte Methode enthält) und MyCustomWorkflow sowie AnotherCustomWorkflow (abgeleitete Klassen, die ParentFile erben). Die folgende Tabelle zeigt, wie die Vererbung zwischen diesen Klassen und Dateien funktioniert:
Codierte AutomatisierungBeschreibungCode
CodedWorkflow (read-only partial class) Diese Klasse dient als Grundlage für alle codierten Workflows. Sie enthält grundlegende Methoden und Eigenschaften, die für alle Workflows gleich sind und von der CodedWorkflowBase-Klasse geerbt werden. In diesem Beispiel ist es die Klasse, von der letztlich alle anderen Workflows erben.
Wichtig: Die Datei, die andere Workflows erben sollen, muss auch die Klassen CodedWorkflow und implizit CodedWorkflowBase erben. Dadurch wird sichergestellt, dass alle Workflows wichtige Funktionen erben und wie erwartet funktionieren.
public partial class CodedWorkflow : CodedWorkflowBase
    {
        public CodedWorkflow()
        {
         //...

    }
}public partial class CodedWorkflow : CodedWorkflowBase
    {
        public CodedWorkflow()
        {
         //...

    }
}
ParentFile (code source file containing an intermediate class and a custom method) Diese Klasse erbt von CodedWorkflow und fügt benutzerdefinierte Methoden und Funktionen hinzu. In diesem Beispiel enthält sie eine benutzerdefinierte Methode namens CustomMethod, die bestimmte Aktionen ausführt, wie das Starten eines Auftrags im Orchestrator.
public class ParentFile : CodedWorkflow
{
    public void CustomMethod(string processName, string folderPath, 
    StartProcessDtoJobPriority jobPriority, bool resumeOnSameContext, 
    out string jobId)
    {
        // Enter your custom code here.
        // For example, use the StartJob API inside this custom method.
        jobId = system.StartJob(processName, folderPath, jobPriority, resumeOnSameContext);
    }
}public class ParentFile : CodedWorkflow
{
    public void CustomMethod(string processName, string folderPath, 
    StartProcessDtoJobPriority jobPriority, bool resumeOnSameContext, 
    out string jobId)
    {
        // Enter your custom code here.
        // For example, use the StartJob API inside this custom method.
        jobId = system.StartJob(processName, folderPath, jobPriority, resumeOnSameContext);
    }
}
MyCustomWorkflow and AnotherCustomWorkflow (coded workflows that inherit the code source file) Diese Klassen erben von ParentFile und passen den Workflow weiter an, indem sie Methoden überschreiben oder andere Parameterwerte bereitstellen. In diesem Beispiel haben wir MyCustomWorkflow und AnotherCustomWorkflow, die beide ParentFile erben.
public class MyCustomWorkflow : ParentFile
    {
        [Workflow]
        public void Execute()
        {
            // You can now call CustomMethod from the base class.
            string processName = "YourProcessName";
            string folderPath = "YourFolderPath";
            StartProcessDtoJobPriority jobPriority = StartProcessDtoJobPriority.Normal;
            bool resumeOnSameContext = false;
            string jobId;

            // Call the custom method from the base class.
            CustomMethod(processName, folderPath, 
            jobPriority, resumeOnSameContext, out jobId);
        }
    }public class MyCustomWorkflow : ParentFile
    {
        [Workflow]
        public void Execute()
        {
            // You can now call CustomMethod from the base class.
            string processName = "YourProcessName";
            string folderPath = "YourFolderPath";
            StartProcessDtoJobPriority jobPriority = StartProcessDtoJobPriority.Normal;
            bool resumeOnSameContext = false;
            string jobId;

            // Call the custom method from the base class.
            CustomMethod(processName, folderPath, 
            jobPriority, resumeOnSameContext, out jobId);
        }
    }
Da also ParentFile von CodedWorkflow erbt, erbt jede Klasse, die von ParentFile erbt, indirekt die Funktionen und Methoden von CodedWorkflow. Mit anderen Worten: MyCustomWorkflow sowie AnotherCustomWorkflow erben die Grundfunktionen von der partiellen Klasse CodedWorkflow über die Zwischenklasse ParentFile zusammen mit anderen benutzerdefinierten Klassen, z. B. CustomMethod.

Registrieren von benutzerdefinierten Diensten

Um Ihre codierten Automatisierungen mithilfe von benutzerdefinierter Logik zu verbessern, können Sie benutzerdefinierte Dienste registrieren, die Sie später in Ihren codierten Automatisierungen verwenden. Unter Registrieren benutzerdefinierter Dienste erfahren Sie, wie Sie Ihren eigenen benutzerdefinierten Dienst registrieren können.

„Vor“- und „Nach“-Kontexte

In Testfällen können Sie mit „Vor“- und „Nach“-Kontexten („Before“ und „After“) bestimmte Aktionen vor und nach der Ausführung des Testfalls ausführen. Diese Kontexte werden häufig verwendet, um Ressourcen einzurichten und zu entfernen, die Protokollierung durchzuführen und die Testumgebung zu verwalten. Unter „Vor“- und „Nach“-Kontexte erfahren Sie, wie sich die Kontexte verhalten und wie sie implementiert werden.

Tipps und Tricks

Entwerfen Sie effiziente und robuste codierte Automatisierungen mithilfe der folgenden Tipps und Tricks. Diese gesammelten Erkenntnisse helfen Ihnen, Ihren Code zu optimieren, Fehler zu vermeiden und die Leistung zu maximieren.
  • Es wird empfohlen, keine Änderungen an Namespaces vorzunehmen.
  • Speichern Sie eine Aktion in einer Klasse und verwenden Sie sie im gesamten Projekt wieder, um doppelten Code zu vermeiden.
  • Sie können Namespaces entfernen, die Sie während der Entwurfszeit importiert haben, aber nicht mehr benötigen.
  • Wenn Sie Daten aus mehreren Anwendungen abrufen müssen, trennen Sie die Phasen der codierten Automatisierung, damit Sie Daten aus verschiedenen Quellen nicht vermischen.
Symbol für Support und Dienste
Hilfe erhalten
UiPath Academy-Symbol
RPA lernen – Automatisierungskurse
Symbol für UiPath-Forum
UiPath Community-Forum
UiPath Logo weiß
Vertrauen und Sicherheit
© 2005-2024 UiPath. All rights reserved.