- 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
- Procédure pour créer un déclencheur personnalisé
Guide du développeur
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.
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
- 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) (.NET Framework)et cliquez sur Suivant ( Next). La fenêtre Configurer votre nouveau projet (Configure your new project) s'affiche.
-
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.
- Dans le menu Outils (Tools), sélectionnez Options(Options). La fenêtre Options est maintenant affichée.
- Développez l'entrée Gestionnaire de paquets NuGet (NuGet Package Manager ) et sélectionnez Sources de paquets ( Package Sources) .
-
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. - 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.
- 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.
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
et StopMonitor
. Cela sert à dicter le comportement du déclencheur dans le cadre de la surveillance d'événements spécifiques.
<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 ).