UiPath Documentation
sdk
latest
false
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。 新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。
UiPath logo, featuring letters U and I in white

開発者ガイド

最終更新日時 2026年3月30日

カスタム トリガーの作成方法

オートメーション プロジェクトでトリガーの機能を利用できるようになりました。トリガーは、特定のアクションを発生させるためにマシンのアクティビティで特定のイベントがないか監視します。 トリガーは [イベントを監視] フレームワークを使用して設定できますが、このガイドで説明しているようにカスタム トリガーを構築することもできます。

前提条件

カスタム トリガーを作成するには、以下が必要です。

  • Microsoft Visual Studio
  • Microsoft .NET Framework v4.6.1 以降

プロジェクトを作成および構成する

  1. Microsoft Visual Studio を開き、新しいプロジェクトを作成することを選択します。 [プロジェクト] 選択ウィンドウが表示されます。

  2. [クラス ライブラリ (.NET Framework)] を選択し、[次へ] をクリックします。[ 新しいプロジェクトを設定] ウィンドウが表示されます。

  3. プロジェクト名、場所、ソリューション名、フレームワークを入力します。必ず .NET Framework 4.6.1 以降のフレームワークを選択してください。すべてのフィールドに入力したら、[ 作成] をクリックします。新しいプロジェクトが作成され、デザイナー ウィンドウが表示されます。

    docs image

  4. [ツール] メニューから [オプション] を選択します。[オプション] ウィンドウが表示されます。

  5. [ NuGet パッケージ マネージャー ] のエントリを展開し、[ パッケージ ソース] を選択します。

  6. 新しいパッケージ ソースを追加し、[ 名前 ] フィールドに UiPath のオフィシャル フィード と入力し、[ ソース ] フィールドに https://pkgs.dev.azure.com/uipath/Public.Feeds/_packaging/UiPath-Official/nuget/v3/index.jsonを入力します。[ OK ] をクリックして確認し、変更を保存します。

    docs image

  7. [ ツール ] メニューをクリックし、[ NuGet パッケージ マネージャー ] エントリから [ ソリューションの NuGet パッケージの管理] を選択します。[NuGet - ソリューション] タブが表示されます。

  8. UiPath.Platform の参照を検索して選択します。右側のパネルで、参照を追加するプロジェクトを選択し、[ インストール] をクリックします。[ プレリリースを含める ] ボックスをオンにして、 UiPath.Platform v20.8 以降のリファレンス パッケージをインストールしてください。

トリガー コードを記述する

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 メソッドと StopMonitor メソッドを実装します。 これは、特定のイベントを監視するためのトリガーの動作を決定するために行われます。

イベント ハンドラーでトリガーの使用法を拡張するための引数を指定する場合は、デザイナーに <Custom>TriggerArgs クラスを追加して設定する必要があることに注意してください。

最後の手順では、 ライブラリを構築し、 Studio で使用する NuGet パッケージを作成します 。これで、新しいトリガーを [トリガー スコープ] アクティビティ内で使用できるようになりました。

このページは役に立ちましたか?

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得