SDK
Neuestes
False
Bannerhintergrundbild
Entwickleranleitung
Letzte Aktualisierung 23. März 2024

Erstellen von Aktivitäten mit Code (Veraltet)

Wichtig: Die Informationen auf dieser Seite beziehen sich auf Aktivitäten, die auf das veraltete .NET Framework abzielen. Informationen zum Erstellen von Aktivitäten, die für die neuesten Versionen von Studio auf .NET abzielen, finden Sie unter Erstellen von Aktivitäten mit Code.
An activity is the building block of a process automation. UiPath Studio comes with various built-in dedicated activities (such as PDF, mail, Excel, SAP, and more) you can install through the Package Manager, depending on your needs. You can read The UiPath Activities Guide for more details and examples, as well as how to Manage Activities Packages . Additionally, you can create custom activities to better automate processes based on your needs.

Beim Erstellen einer benutzerdefinierten Aktivität gibt es zwei wichtige Schritte:

  1. Schreiben des Codes für die benutzerdefinierte Aktivität.
  2. Hinzufügen einer externen Zusammenstellung (.dll) in UiPath.
Hinweis:

Die folgenden Komponenten sind erforderlich, um eine benutzerdefinierte Aktivität zu erstellen:

Schreiben des Codes für die benutzerdefinierte Aktivität (Custom Activity Code).

Um besser zu verstehen, wie der Code für eine benutzerdefinierte Aktivität geschrieben wird, erstellen wir eine einfache Aktivität, die den Benutzer nach zwei Zahlen fragt und dann die Quadratur ihrer Summe ausgibt.

  1. Microsoft Visual Studio starten (Launch Microsoft Visual Studio).
  2. Klicken Sie auf Datei > Neues > Projekt… (File > New >Project…) (Kurzbefehl: Strg + Shift + N). Das Fenster Neues Projekt (New Project) wird angezeigt.
  3. Wählen Sie C# aus dem Dropdown-Menü Sprachen aus. Die Liste aller Abhängigkeiten, die C# verwenden, wird angezeigt.
  4. Wählen Sie Klassenbibliothek (.NET Framework) aus. Dies hilft uns, die benutzerdefinierte Aktivität als .dll -Datei zu exportieren. Klicken Sie auf Weiter , um zum Fenster Konfigurieren Ihres neuen Projekts zu wechseln.


  5. Geben Sie den gewünschten Aktivitätsnamen in das Feld Projektname ein. In unserem Fall können wir „MathSquareOfSum“ verwenden.
  6. Wählen Sie .NET Framework 4.6.1 aus dem Dropdown-Menü Framework aus. Dadurch wird sichergestellt, dass die Bibliothek mit UiPath Studio kompatibel ist.
Wichtig: In Windows-Legacy-Projekten unterstützt UiPath Studio Aktivitäten, die mit .NET Framework 4.5.2 bis 4.6.1 erstellt wurden. Informationen zum Migrieren von Aktivitäten zu .NET zur Verwendung in Projekten mit Windows-Kompatibilität finden Sie unter Migrieren von Aktivitäten zu .NET 6.


  1. Klicken Sie auf Erstellen , um zum Code-Designer zu wechseln und mit dem Schreiben des Aktivitätscodes zu beginnen.
  2. Klicken Sie im Projektmappen- Explorer mit der rechten Maustaste auf die Verzweigung Referenzen , und wählen Sie Referenz hinzufügen...aus. Das Fenster Referenzmanager wird angezeigt.


  3. Suchen Sie nach den Referenzen System.Activities und System.ComponentModel.Composition und fügen Sie sie hinzu. Aktivieren Sie das jeweilige Kontrollkästchen und klicken Sie auf OK. Dadurch können wir Klassen aus den oben genannten Referenzen verwenden.




  4. Jetzt müssen wir sicherstellen, dass unser Code die neu hinzugefügten Verweise verwendet. Dazu fügen Sie im Code-Designer die folgenden Zeilen hinzu:

    using System.Activities;
    using System.ComponentModel;using System.Activities;
    using System.ComponentModel;

    Unser Projekt sollte nun folgendermaßen aussehen:



  5. Fügen Sie die Eingabe- und Ausgabeparameter hinzu. In unserem Fall sollte der Code folgendermaßen aussehen:

    //Note that these attributes are localized so you need to localize this attribute for Studio languages other than English
     
    //Dots allow for hierarchy. App Integration.Excel is where Excel activities are.
    [Category("Category.Where.Your.Activity.Appears.In.Toolbox")]
    [DisplayName("Human readable name instead of class name")]
    [Description("The text of the tooltip")]
     public class MathSqSum : CodeActivity
    {
     
        //Note that these attributes are localized so you need to localize this attribute for Studio languages other than English
                 [Category("Input")]
            [DisplayName("First Number")]
            [Description("Enter the first number")]
            [RequiredArgument]
            public InArgument<int> FirstNumber { get; set; }
            [Category("Input")]
            [DisplayName("Second Number")]
            [Description("Enter the second number")]
            [RequiredArgument]
            public InArgument<int> SecondNumber { get; set; }
            [Category("Output")]
            public OutArgument<int> ResultNumber { get; set; }
            protected override void Execute(CodeActivityContext context)
            {
            }//Note that these attributes are localized so you need to localize this attribute for Studio languages other than English
     
    //Dots allow for hierarchy. App Integration.Excel is where Excel activities are.
    [Category("Category.Where.Your.Activity.Appears.In.Toolbox")]
    [DisplayName("Human readable name instead of class name")]
    [Description("The text of the tooltip")]
     public class MathSqSum : CodeActivity
    {
     
        //Note that these attributes are localized so you need to localize this attribute for Studio languages other than English
                 [Category("Input")]
            [DisplayName("First Number")]
            [Description("Enter the first number")]
            [RequiredArgument]
            public InArgument<int> FirstNumber { get; set; }
            [Category("Input")]
            [DisplayName("Second Number")]
            [Description("Enter the second number")]
            [RequiredArgument]
            public InArgument<int> SecondNumber { get; set; }
            [Category("Output")]
            public OutArgument<int> ResultNumber { get; set; }
            protected override void Execute(CodeActivityContext context)
            {
            }
Das Attribut <DisplayName(" ")> ist die Beschriftung, die vor dem Eingabefeld im Eigenschaftenbereich in Studio angezeigt wird. Das <Description(" ")> -Attribut ist der Text der QuickInfo, die beim Darüberfahren mit der Maus angezeigt wird.


Das Attribut <ReguiredArgument> ist erforderlich, wenn ein deklariertes Element für die Eingabe obligatorisch sein soll. Wenn es nicht ausgefüllt ist, wird in der Titelleiste der Aktivität ein blaues Warnsymbol angezeigt.


12. Fügen Sie die Funktionalität in der überschriebenen Funktion <Execute( )> hinzu. In unserem Fall sieht es so aus:
protected override void Execute(CodeActivityContext context)
{
    var firstNumber = FirstNumber.Get(context);
  var secondNumber = SecondNumber.Get(context);
  
  var result = (int)Math.Pow(firstNumber + secondNumber, 2);
  ResultNumber.Set(context, result);
}protected override void Execute(CodeActivityContext context)
{
    var firstNumber = FirstNumber.Get(context);
  var secondNumber = SecondNumber.Get(context);
  
  var result = (int)Math.Pow(firstNumber + secondNumber, 2);
  ResultNumber.Set(context, result);
}

Erstellen einer Designeroberfläche (optional)

Wenn Sie keine Designeroberfläche für Ihre Aktivität möchten, können Sie zum Abschnitt Bibliothekserstellung springen.

Wichtig:

Um eine Designeroberfläche zu erstellen, muss die Komponente „Windows Workflow Foundation“ in Visual Studio installiert sein. Wenn Sie die Komponente nicht aus dem Visual Studio-Installationsprogramm ausgewählt haben, können Sie sie wie folgt hinzufügen:

  • Klicken Sie in Visual Studio auf das Menü Extras und wählen Sie Tools und Funktionen abrufen...aus. Das Fenster Visual Studio-Installer wird angezeigt.
  • Wechseln Sie zur Registerkarte Einzelne Komponenten und suchen Sie nach der Komponente Windows Workflow Foundation . Sie befindet sich im Abschnitt Entwicklungsaktivitäten .
  • Aktivieren Sie das Kontrollkästchen vor der Komponente „ Windows Workflow Foundation“ und klicken Sie auf Ändern. Die erforderliche Komponente wird installiert.


13. Klicken Sie im Eigenschaftenbereich mit der rechten Maustaste auf das Projekt (in unserem Fall ist das Projekt MathSquareOfSum). Das Kontextmenü wird angezeigt.



14. Wählen Sie unter Element hinzufügen die Option Neues Element...aus. Das Fenster Neues Element hinzufügen wird angezeigt.

15. Klicken Sie auf Workflow unter der Kategorie Installiert im linken Bereich. Alle zugehörigen Elemente werden angezeigt.

16. Wählen Sie Aktivitätsdesigner aus und klicken Sie auf Hinzufügen , um das Element in das Projekt aufzunehmen.



Das Aktivitätsdesigner -Element wird hinzugefügt und die entsprechende .xaml -Datei wird sofort geöffnet. Sie sollte folgendermaßen aussehen:


17. Ersetzen Sie den vorhandenen Aktivitätsdesigner -Code durch Folgendes:

<sap:ActivityDesigner x:Class="MathSquareOfSum.MathSqSumDesigner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:s="clr-namespace:System;assembly=mscorlib"
    xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
    xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
    xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation">
    <a href="sap:ActivityDesigner.Resources">sap:ActivityDesigner.Resources</a>
        <ResourceDictionary>
            <sapc:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />
        </ResourceDictionary>
    </sap:ActivityDesigner.Resources>
    <DockPanel Width="300">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="90"></ColumnDefinition>
                <ColumnDefinition Width="210"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
            </Grid.RowDefinitions>
            <TextBlock Grid.Row="0" Grid.Column="0" Text="First Number"></TextBlock>
            <sapv:ExpressionTextBox Grid.Row="0" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="Enter first number" Expression="{Binding Path=ModelItem.FirstNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=In, Mode=TwoWay}" />
            <TextBlock Grid.Row="1" Grid.Column="0" Text="Second Number"></TextBlock>
            <sapv:ExpressionTextBox Grid.Row="1" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="Enter second number" Expression="{Binding Path=ModelItem.SecondNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=In, Mode=TwoWay}" />
            <TextBlock Grid.Row="2" Grid.Column="0" Text="Result"></TextBlock>
            <sapv:ExpressionTextBox Grid.Row="2" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="The sum of the numbers" UseLocationExpression="True" Expression="{Binding Path=ModelItem.ResultNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=Out, Mode=TwoWay}" />
        </Grid>
    </DockPanel>
</sap:ActivityDesigner><sap:ActivityDesigner x:Class="MathSquareOfSum.MathSqSumDesigner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:s="clr-namespace:System;assembly=mscorlib"
    xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
    xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
    xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation">
    <a href="sap:ActivityDesigner.Resources">sap:ActivityDesigner.Resources</a>
        <ResourceDictionary>
            <sapc:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />
        </ResourceDictionary>
    </sap:ActivityDesigner.Resources>
    <DockPanel Width="300">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="90"></ColumnDefinition>
                <ColumnDefinition Width="210"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
            </Grid.RowDefinitions>
            <TextBlock Grid.Row="0" Grid.Column="0" Text="First Number"></TextBlock>
            <sapv:ExpressionTextBox Grid.Row="0" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="Enter first number" Expression="{Binding Path=ModelItem.FirstNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=In, Mode=TwoWay}" />
            <TextBlock Grid.Row="1" Grid.Column="0" Text="Second Number"></TextBlock>
            <sapv:ExpressionTextBox Grid.Row="1" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="Enter second number" Expression="{Binding Path=ModelItem.SecondNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=In, Mode=TwoWay}" />
            <TextBlock Grid.Row="2" Grid.Column="0" Text="Result"></TextBlock>
            <sapv:ExpressionTextBox Grid.Row="2" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="The sum of the numbers" UseLocationExpression="True" Expression="{Binding Path=ModelItem.ResultNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=Out, Mode=TwoWay}" />
        </Grid>
    </DockPanel>
</sap:ActivityDesigner>

Das neu definierte Layout für die Aktivität sollte nun folgendermaßen aussehen:



18. Klicken Sie mit der rechten Maustaste auf die Aktivität (in unserem Fall ActMathSquareOfSum) und wählen Sie im Menü Hinzufügen die Option Klasse...aus. Das Fenster Neues Element hinzufügen wird angezeigt.

19. Das Klassenelement ist bereits ausgewählt. Jetzt müssen Sie sie nur noch in DesignerMetadata.cs umbenennen und auf Hinzufügenklicken. Die neue Klasse wird nun der Aktivität hinzugefügt und in einer neuen Registerkarte geöffnet.


20. Fügen Sie den folgenden Inhalt in die neu erstellte DesignerMetadata -Klasse ein:

using MathSquareOfSum;
using System.Activities.Presentation.Metadata;
using System.ComponentModel;
namespace ActMathSquareOfSum
{
    public class DesignerMetadata : IRegisterMetadata
    {
        public void Register()
        {
            AttributeTableBuilder attributeTableBuilder = new AttributeTableBuilder();
            attributeTableBuilder.AddCustomAttributes(typeof(MathSqSum), new DesignerAttribute(typeof(MathSqSumDesigner)));
            MetadataStore.AddAttributeTable(attributeTableBuilder.CreateTable());
        }
    }
}using MathSquareOfSum;
using System.Activities.Presentation.Metadata;
using System.ComponentModel;
namespace ActMathSquareOfSum
{
    public class DesignerMetadata : IRegisterMetadata
    {
        public void Register()
        {
            AttributeTableBuilder attributeTableBuilder = new AttributeTableBuilder();
            attributeTableBuilder.AddCustomAttributes(typeof(MathSqSum), new DesignerAttribute(typeof(MathSqSumDesigner)));
            MetadataStore.AddAttributeTable(attributeTableBuilder.CreateTable());
        }
    }
}

Erstellen der Bibliothek

Testen Sie das Projekt auf Fehler, bevor Sie versuchen, es zu erstellen.

Wählen Sie im Menü Erstellen die Option Projektmappe erstellenaus. Die MathSquareOfSum.dll -Bibliothek wird nun am folgenden Speicherort erstellt und gespeichert:
%UserProfile%\source\repos\MathSquareOfSum\MathSquareOfSum\bin\Debug

Sobald die Bibliothek erstellt wurde, sollte das Panel Ausgabe ( Output ) eine folgende Meldung anzeigen:



Erstellen des NuGet-Pakets (NuGet Package)

  1. Starten Sie den NuGet-Paket-Explorer und klicken Sie auf Ein neues Paket erstellen (Strg + N). Ein geteiltes Fenster wird angezeigt, in dem Paketmetadaten und Paketinhalteangezeigt werden. Im letzten Abschnitt fügen wir alle Abhängigkeiten hinzu.
  2. Klicken Sie mit der rechten Maustaste in den Abschnitt Paketinhalt . Ein Kontextmenü wird angezeigt.
  3. Klicken Sie auf lib-Ordner hinzufügen (Add lib folder). Ein neues lib (lib)-Element wurde im Bereich Paketinhalt (Package contents) erstellt.


  4. Drücken Sie die rechte Maustaste auf lib (lib) und wählen Sie Bestehende Datei hinzufügen (Add Existing File)….



  5. Laden Sie die oben erstellte externe Assembly (.dll). In unserem Fall befindet sich die Datei MathSquareOfSum.dll im Ordner %UserProfile%\source\repos\MathSquareOfSum\MathSquareOfSum\bin\Debug .
  6. Wenn die Datei ausgewählt ist, greifen Sie auf das Menü Bearbeiten zu, und wählen Sie Metadaten bearbeitenaus. Das linke Panel ist jetzt mit bearbeitbaren Metadatenfeldern ausgestattet.


  7. Befüllen Sie die Felder, um Ihre benutzerdefinierte Funktion sinnvoll beschreiben zu können.
  8. Füllen Sie das Feld ID aus. In unserem Fall kann dies UiPath.MathSquare.Activitiessein, wobei der erste Wert, UiPath, für das Team steht, das das Paket erstellt hat. Wenn kein bestimmtes Team beteiligt war, kann der erste Wert leer gelassen werden.



  9. Klicken Sie auf das grüne Häkchen in der oberen linken Ecke des Abschnitts Paketmetadaten , um alle Änderungen zu speichern.
  10. Wählen Sie im Menü Datei die Option Speichern unter... aus. Ein Explorer-Fenster wird angezeigt, in dem Sie den Speicherort der neuen Datei auswählen können.
  11. Speichern Sie die Datei in dem Ordner, in dem lokale Pakete von UiPath gespeichert werden (C:\Program Files (x86)\UiPath\Studio\Packages in Versionen vor 2021.4 oder C:\Program Files\UiPath\Studio\Packages ab Version 2021.4). Die Datei UiPath.MathSquare.Activities.1.0.0.nupkg wird nun im Ordner UiPath.MathSquare.Activities innerhalb des Paketordners erstellt.

Laden des NuGet-Pakets in Studio

  1. Greifen Sie über Studio auf den Paketmanager zu .
  2. Da wir das NuGet-Paket im lokalen Paketordner gespeichert haben, sollte die Aktivität im lokalen Feed verfügbar sein.


  3. Suchen Sie nach der Aktivität, klicken Sie auf Installieren und dann auf Speichern. Die neue Aktivität ist jetzt installiert und kann in Ihren Automatisierungsprojekten verwendet werden.

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
UiPath Logo weiß
Vertrauen und Sicherheit
© 2005-2024 UiPath. All rights reserved.