SDK
Plus récente (Latest)
False
Image de fond de la bannière
Guide du développeur
Dernière mise à jour 23 mars 2024

Procédure pour créer un déclencheur personnalisé

Les projets d'automatisation bénéficient de déclencheurs, qui surveillent l'activité de la machine pour détecter des événements spécifiques afin de déclencher des Actionsparticulières. Les déclencheurs peuvent être configurés via l'infrastructure Monitor Events, mais vous pouvez également en créer des personnalisés, comme expliqué dans ce guide.

Prérequis

Pour créer un déclencheur personnalisé, les éléments suivants sont requis :

  • Microsoft Visual Studio
  • Microsoft .NET Framework v4.6.1 ou versions ultérieures

Création et configuration du projet

  1. Ouvrez Microsoft Visual Studio et choisissez Créer un nouveau projet (Create a new project). La fenêtre Sélection du projet (Project selection) s'affiche.
  2. Sélectionnez Bibliothèque de classes (.NET Framework) (.NET Framework)et cliquez sur Suivant ( Next). La fenêtre Configurer votre nouveau projet (Configure your new project) s'affiche.
  3. Indiquez un nom de projet, un emplacement, un nom de solution et une infrastructure. Assurez-vous de sélectionner .NET Framework 4.6.1 Framework ou version ultérieure. Lorsque tous les champs sont remplis, cliquez sur Créer ( Create). Le nouveau projet est créé et la fenêtre du concepteur s'affiche.



  4. Dans le menu Outils (Tools), sélectionnez Options(Options). La fenêtre Options est maintenant affichée.
  5. Développez l'entrée Gestionnaire de paquets NuGet (NuGet Package Manager ) et sélectionnez Sources de paquets ( Package Sources) .
  6. Ajoutez une nouvelle source de package et remplissez le champ Nom (Name ) avec Flux officiel UiPath et le champ Source avec https://pkgs.dev.azure.com/uipath/Public.Feeds/_packaging/UiPath-Official/nuget/v3/index.json. Cliquez sur OK pour confirmer et enregistrer les modifications.


  7. Cliquez sur le menu Outils (Tools) et, à partir de l'entrée Gestionnaire de packages NuGet (NuGet Package Manager), sélectionnez Gérer les packages NuGet pour la solution... (Manage NuGet Packages for Solution...). L'onglet NuGet - Solutions s'affiche.
  8. Recherchez la référence UiPath.Platform et sélectionnez-la. Dans le panneau de droite, sélectionnez le projet pour lequel ajouter la référence, puis cliquez sur Installer ( Install). Assurez-vous de cocher la case Inclure la version préliminaire ( Include prerelease ) et d'installer la référence UiPath.Platform v20.8 ou supérieure.

Écriture du code du déclencheur

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; 
}
L'étape suivante consiste à implémenter les méthodes StartMonitor et StopMonitor . Cela sert à dicter le comportement du déclencheur dans le cadre de la surveillance d'événements spécifiques.
Il est important de noter que si vous souhaitez fournir des arguments pour étendre l'utilisation du déclencheur dans le gestionnaire d'événements, vous devez ajouter et configurer une classe <Custom>TriggerArgs dans le concepteur.

La dernière étape consiste à construire la bibliothèque et à créer le package NuGet à utiliser dans Studio. Le nouveau déclencheur peut désormais être utilisé dans une activité Étendue du déclencheur ( Trigger Scope ).

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Logo Uipath blanc
Confiance et sécurité
© 2005-2024 UiPath. All rights reserved.