- Ü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
- So erstellen Sie einen benutzerdefinierten Trigger
So erstellen Sie einen benutzerdefinierten Trigger
Automatisierungsprojekte profitieren von Triggern, die die Maschinenaktivität auf bestimmte Ereignisse überwachen, um bestimmte Actions. Trigger können über das Framework Events konfiguriert werden, aber Sie können auch benutzerdefinierte Trigger erstellen, wie in diesem Handbuch erläutert.
Zum Erstellen eines benutzerdefinierten Triggers ist Folgendes erforderlich:
- Microsoft Visual Studio
- Microsoft .NET Framework v4.6.1 oder höher
- Öffnen Sie Microsoft Visual Studio, und wählen Sie Ein neues Projekt erstellen aus. Das Fenster Projektauswahl wird angezeigt.
- Wählen Sie Klassenbibliothek (.NET Framework)aus, und klicken Sie auf Weiter. Das Fenster Konfigurieren des neuen Projekts wird angezeigt.
-
Geben Sie einen Projektnamen, einen Speicherort, einen Lösungsnamen und ein Framework an. Stellen Sie sicher, dass Sie .NET Framework 4.6.1 oder höher auswählen. Wenn alle Felder ausgefüllt sind, klicken Sie auf Erstellen. Das neue Projekt wird erstellt und das Designerfenster wird angezeigt.
- Wählen Sie im Menü Extras die Option Optionenaus. Das Fenster Optionen wird nun angezeigt.
- Erweitern Sie den Eintrag NuGet Package Manager und wählen Sie Paketquellenaus.
-
Fügen Sie eine neue Paketquelle hinzu und füllen Sie das Feld Name mit dem offiziellen UiPath-Feed und das Feld Quelle mit
https://pkgs.dev.azure.com/uipath/Public.Feeds/_packaging/UiPath-Official/nuget/v3/index.json
aus. Klicken Sie auf OK , um die Änderungen zu bestätigen und zu speichern. - Klicken Sie auf das Menü Extras, und wählen Sie im NuGet -Paketmanager die Option NuGet-Pakete für Lösung verwalten... aus. Die Registerkarte NuGet – Lösungen wird angezeigt.
- Suchen Sie nach der Referenz UiPath.Platform und wählen Sie sie aus. Wählen Sie im Panel auf der rechten Seite das Projekt aus, für das Sie die Referenz hinzufügen möchten, und klicken Sie dann auf Installieren. Aktivieren Sie das Kontrollkästchen Vorabversion einschließen und installieren Sie die Referenz für UiPath.Platform v20.8 oder höher.
Once the references are added to the project, it's time to write the code, which should look something like this:
using System;
using System.Activities;
using System.Threading;
using UiPath.Platform.Triggers;
public class TimerTrigger : TriggerBase<TimerTriggerArgs>
{
//it is recommended to use Variable to store fields in order for
//activities like Parallel For Each to work correctly
private readonly Variable<Timer> _timer = new Variable<Timer>();
public InArgument<TimeSpan> Period { get; set; }
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
metadata.AddImplementationVariable(_timer);
base.CacheMetadata(metadata);
}
//in this method you can subscribe to events. It is called when the trigger starts execution
protected override void StartMonitor(NativeActivityContext context, Action<TimerTriggerArgs> sendTrigger)
{
var eventIndex = 0;
var period = Period.Get(context);
_timer.Set(context, new Timer(OnTick, state: null, dueTime: period, period: period));
return;
void OnTick(object state) => sendTrigger(new TimerTriggerArgs(eventIndex++));
}
//this is used for cleanup. It is called when the trigger is Cancelled or Aborted
protected override void StopMonitor(ActivityContext context) => _timer.Get(context).Dispose();
}
//Each trigger may declare a type that sub-classes TriggerArgs
//that corresponds to the “args” item in Trigger Scope activity. If no extra info
//needs to be passed along, TriggerArgs can be used directly
public class TimerTriggerArgs : TriggerArgs
{
public int EventIndex { get; }
public TimerTriggerArgs(int eventIndex) => EventIndex = eventIndex;
}
using System;
using System.Activities;
using System.Threading;
using UiPath.Platform.Triggers;
public class TimerTrigger : TriggerBase<TimerTriggerArgs>
{
//it is recommended to use Variable to store fields in order for
//activities like Parallel For Each to work correctly
private readonly Variable<Timer> _timer = new Variable<Timer>();
public InArgument<TimeSpan> Period { get; set; }
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
metadata.AddImplementationVariable(_timer);
base.CacheMetadata(metadata);
}
//in this method you can subscribe to events. It is called when the trigger starts execution
protected override void StartMonitor(NativeActivityContext context, Action<TimerTriggerArgs> sendTrigger)
{
var eventIndex = 0;
var period = Period.Get(context);
_timer.Set(context, new Timer(OnTick, state: null, dueTime: period, period: period));
return;
void OnTick(object state) => sendTrigger(new TimerTriggerArgs(eventIndex++));
}
//this is used for cleanup. It is called when the trigger is Cancelled or Aborted
protected override void StopMonitor(ActivityContext context) => _timer.Get(context).Dispose();
}
//Each trigger may declare a type that sub-classes TriggerArgs
//that corresponds to the “args” item in Trigger Scope activity. If no extra info
//needs to be passed along, TriggerArgs can be used directly
public class TimerTriggerArgs : TriggerArgs
{
public int EventIndex { get; }
public TimerTriggerArgs(int eventIndex) => EventIndex = eventIndex;
}
StartMonitor
und StopMonitor
. Dadurch wird das Verhalten des Triggers zur Überwachung bestimmter Ereignisse bestimmt.
<Custom>TriggerArgs
-Klasse im Designer hinzufügen und konfigurieren müssen, wenn Sie Argumente zur Erweiterung der Trigger-Verwendung im Event-Handler bereitstellen möchten.
Im letzten Schritt werden die Bibliothek und das NuGet-Paket erstellt , das in Studio verwendet werden soll. Der neue Trigger kann jetzt innerhalb einer Trigger Scope- Aktivität verwendet werden.