- Vue d'ensemble (Overview)
- Activités personnalisées (Custom Activities)
- Migration des activités vers .NET 6
- Notes de publication
- Création de règles d'analyse de flux de travail
- Création de paramètres de projet d'activité
- Création d'assistants personnalisés
- Classer les activités par ordre de priorité
- 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
- SDK de déclencheurs
- Comment créer un déclencheur personnalisé
- SDK Agents

Guide du développeur
Comment 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
-
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.
-
Sélectionnez Bibliothèque de classes (.NET Framework) et cliquez sur Suivant. La fenêtre Configurer votre nouveau projet s’affiche.
-
Indiquez le nom du projet, l’emplacement, le nom de la solution et l’infrastructure. Veillez à sélectionner l’infrastructure .NET Framework 4.6.1 ou toute version ultérieure. Lorsque tous les champs sont remplis, cliquez sur Créer. Le nouveau projet est créé et la fenêtre du concepteur s'affiche.

-
Dans le menu Outils , sélectionnez Options. La fenêtre Options est maintenant affichée.
-
Développez l’entrée Gestionnaire de packages NuGet et sélectionnez Sources de packages.
-
Ajoutez une source de package et remplissez le champ Nom 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.
-
Cliquez sur le menu Outils et dans l'entrée Gestionnaire de packages NuGet, sélectionnez Gérer les packages NuGet pour la solution.... L'onglet NuGet - Solutions s'affiche.
-
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 (Installer). Assurez-vous de cocher la case Inclure la version préliminaire et d'installer la référence UiPath.Platform v20.8 ou toute version ulté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 à créer 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 .