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

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.

Voraussetzungen

Zum Erstellen eines benutzerdefinierten Triggers ist Folgendes erforderlich:

  • Microsoft Visual Studio
  • Microsoft .NET Framework v4.6.1 oder höher

Erstellen und Konfigurieren des Projekts

  1. Öffnen Sie Microsoft Visual Studio, und wählen Sie Ein neues Projekt erstellen aus. Das Fenster Projektauswahl wird angezeigt.
  2. Wählen Sie Klassenbibliothek (.NET Framework)aus, und klicken Sie auf Weiter. Das Fenster Konfigurieren des neuen Projekts wird angezeigt.
  3. 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.



  4. Wählen Sie im Menü Extras die Option Optionenaus. Das Fenster Optionen wird nun angezeigt.
  5. Erweitern Sie den Eintrag NuGet Package Manager und wählen Sie Paketquellenaus.
  6. 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.jsonaus. Klicken Sie auf OK , um die Änderungen zu bestätigen und zu speichern.


  7. 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.
  8. 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.

Schreiben des Triggercodes

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; 
}
Als Nächstes implementieren wir die Methoden StartMonitor und StopMonitor . Dadurch wird das Verhalten des Triggers zur Überwachung bestimmter Ereignisse bestimmt.
Bitte beachten Sie, dass Sie eine <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.

War diese Seite hilfreich?

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