SDK
Mais recente
falso
Imagem de fundo do banner
Guia do desenvolvedor
Última atualização 23 de mar de 2024

Como criar um gatilho personalizado

Os projetos de automação se beneficiam dos gatilhos, que monitoram a atividade da máquina em busca de eventos específicos para disparar Actionsespecíficas . Os gatilhos podem ser configurados por meio da estrutura do Monitor Events, mas você também pode criar gatilhos personalizados, conforme explicado neste guia.

Pré-requisitos

Para criar um disparador personalizado, é necessário o seguinte:

  • Microsoft Visual Studio
  • Microsoft .NET Framework v4.6.1 ou posterior

Criação e configuração do projeto

  1. Abra o Microsoft Visual Studio e escolha Criar um novo projeto. A janela Seleção de Projeto é exibida.
  2. Selecione Biblioteca de classes (.NET Framework)e clique em Avançar. A janela Configurar seu novo projeto é exibida.
  3. Forneça um nome de projeto, local, nome de solução e estrutura. Certifique-se de selecionar o .NET Framework 4.6.1 ou superior. Quando todos os campos estiverem preenchidos, clique em Criar. O novo projeto é criado e a janela Designer é exibida.



  4. No menu Ferramentas , selecione Opções. A janela Opções agora é exibida.
  5. Expanda a entrada do Gerenciador de Pacotes NuGet e selecione Origens de Pacotes.
  6. Adicione uma nova origem de pacote e preencha o campo Nome com o Feed Oficial da UiPath e o campo Origem com https://pkgs.dev.azure.com/uipath/Public.Feeds/_packaging/UiPath-Official/nuget/v3/index.json. Clique em OK para confirmar e salvar as alterações.


  7. Clique no menu Ferramentas e, na entrada do Gerenciador de Pacotes NuGet, selecione Gerenciar Pacotes NuGet para Solução.... A aba NuGet – Soluções é exibida.
  8. Procure a referência UiPath.Platform e selecione-a. No painel à direita, selecione o projeto para o qual adicionar a referência e clique em Instalar. Confira se marcou a caixa Incluir pré -lançamento e instale a versão de referência do UiPath.Platform v20.8 ou superior.

Gravar o código de gatilho

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; 
}
A próxima etapa é implementar os métodos StartMonitor e StopMonitor . Isso é feito para determinar o comportamento do disparador para monitorar eventos específicos.
É importante observar que, se você quiser fornecer argumentos para expandir o uso do gatilho no gerenciador de eventos, será necessário adicionar e configurar uma classe <Custom>TriggerArgs no designer.

A última etapa é compilar a biblioteca e criar o pacote NuGet para usar no Studio. O novo gatilho agora pode ser usado dentro de uma atividade Trigger Scope .

Was this page helpful?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Logotipo branco da Uipath
Confiança e segurança
© 2005-2024 UiPath. All rights reserved.