- Überblick
- Benutzerdefinierte Aktivitäten
- Migrieren von Aktivitäten zu .NET 6
- Versionshinweise
- Erstellen von Workflow-Analyseregeln
- Projekteinstellungen für das Erstellen von Aktivitäten
- Erstellen benutzerdefinierter Assistenten
- Priorisieren von Aktivitäten nach Scope
- UiPath.Activities.Api.Base
- UiPath.Studio.Activities.Api
- UiPath.Studio.Activities.Api.Activities
- UiPath.Studio.Activities.Api.BusyService
- UiPath.Studio.Activities.Api.ExpressionEditor
- UiPath.Studio.Activities.Api.Expressions
- UiPath.Studio.Activities.Api.Licensing
- UiPath.Studio.Activities.Api.Mocking
- UiPath.Studio.Activities.Api.ObjectLibrary
- UiPath.Studio.Activities.Api.PackageBindings
- UiPath.Studio.Activities.Api.ProjectProperties
- UiPath.Studio.Activities.Api.ScopedActivities
- UiPath.Studio.Activities.Api.Settings
- UiPath.Studio.Activities.Api.Wizards
- UiPath.Studio.Activities.Api.Workflow
- UiPath.Studio.Api.Controls
- UiPath.Studio.Api.Telemetry
- UiPath.Studio.Api.Theme
- Robot JavaScript SDK
- Trigger SDK
Erstellen von Aktivitäten mit Code (Veraltet)
Beim Erstellen einer benutzerdefinierten Aktivität gibt es zwei wichtige Schritte:
- Schreiben des Codes für die benutzerdefinierte Aktivität.
- Hinzufügen einer externen Zusammenstellung (.dll) in UiPath.
Die folgenden Komponenten sind erforderlich, um eine benutzerdefinierte Aktivität zu erstellen:
- Microsoft Visual Studio mit der Workload .NET-Desktopentwicklung installiert.
- NuGet-Paket-Explorer (NuGet Package Explorer).
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.
- Microsoft Visual Studio starten (Launch Microsoft Visual Studio).
- Klicken Sie auf Datei > Neues > Projekt… (File > New >Project…) (Kurzbefehl: Strg + Shift + N). Das Fenster Neues Projekt (New Project) wird angezeigt.
- Wählen Sie C# aus dem Dropdown-Menü Sprachen aus. Die Liste aller Abhängigkeiten, die C# verwenden, wird angezeigt.
- 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. - Geben Sie den gewünschten Aktivitätsnamen in das Feld Projektname ein. In unserem Fall können wir „MathSquareOfSum“ verwenden.
- 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.
- Klicken Sie auf Erstellen , um zum Code-Designer zu wechseln und mit dem Schreiben des Aktivitätscodes zu beginnen.
- 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.
-
Suchen Sie nach den Referenzen
System.Activities
undSystem.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. -
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:
-
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) { }
<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.
<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.
<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);
}
Wenn Sie keine Designeroberfläche für Ihre Aktivität möchten, können Sie zum Abschnitt Bibliothekserstellung springen.
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.
.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.
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());
}
}
}
Testen Sie das Projekt auf Fehler, bevor Sie versuchen, es zu erstellen.
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:
- 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.
- Klicken Sie mit der rechten Maustaste in den Abschnitt Paketinhalt . Ein Kontextmenü wird angezeigt.
- Klicken Sie auf lib-Ordner hinzufügen (Add lib folder). Ein neues lib (lib)-Element wurde im Bereich Paketinhalt (Package contents) erstellt.
-
Drücken Sie die rechte Maustaste auf lib (lib) und wählen Sie Bestehende Datei hinzufügen (Add Existing File)….
- Laden Sie die oben erstellte externe Assembly (
.dll
). In unserem Fall befindet sich die DateiMathSquareOfSum.dll
im Ordner%UserProfile%\source\repos\MathSquareOfSum\MathSquareOfSum\bin\Debug
. - 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.
- Befüllen Sie die Felder, um Ihre benutzerdefinierte Funktion sinnvoll beschreiben zu können.
-
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.
- Klicken Sie auf das grüne Häkchen in der oberen linken Ecke des Abschnitts Paketmetadaten , um alle Änderungen zu speichern.
- 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.
- 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 oderC:\Program Files\UiPath\Studio\Packages
ab Version 2021.4). Die DateiUiPath.MathSquare.Activities.1.0.0.nupkg
wird nun im OrdnerUiPath.MathSquare.Activities
innerhalb des Paketordners erstellt.
- Greifen Sie über Studio auf den Paketmanager zu .
- Da wir das NuGet-Paket im lokalen Paketordner gespeichert haben, sollte die Aktivität im lokalen Feed verfügbar sein.
- 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.