システム イベント トリガーの作成
トリガーアクションの条件として設定できるシステムイベントは多数あります。/lib/util/に用意されているAPI (GetEnvironmentおよびSetEnvironment)は、システム生成イベントをリッスンするためにいつでも呼び出すことができます。
この手順では、サンプルプロシージャとシステムイベントトリガーを作成してから、トリガーをテストする方法について説明します。
GetEnvironmentを呼び出すサンプルプロシージャを作成するには
| 1. | Studio 内で、次のように CallsGetEnvironment という名前のサンプル SQL スクリプト プロシージャを作成します。 |
PROCEDURE CallsGetEnvironment()
BEGIN
DECLARE tpath VARCHAR(4096);
DECLARE tname VARCHAR(4096);
DECLARE ttype VARCHAR(4096);
DECLARE tvalue VARCHAR(4096);
DECLARE result VARCHAR(4096);
CALL GetEnvironment('TRIGGER_PATH', tpath); CALL GetEnvironment('TRIGGER_EVENT_NAME', tname); CALL GetEnvironment('TRIGGER_EVENT_TYPE', ttype); CALL GetEnvironment('TRIGGER_EVENT_VALUE', tvalue);SET result = CASE
WHEN (ttype IS NULL) THEN 'NULL'
ELSE ttype
END||' trigger '||CASE
WHEN (tpath IS NULL) THEN 'NULL'
ELSE tpath
END||': '||CASE
WHEN (tname IS NULL) THEN 'NULL'
ELSE tname
END||' = '||CASE
WHEN (tvalue IS NULL) THEN 'NULL'
ELSE tvalue
END;
CALL Log(result);
END
このプロシージャがシステムイベントによって実行されると、結果がログに書き込まれます。
システム イベント トリガーを作成するには
-
リソース ツリーで新しいリソースを追加できる場所を右クリックし、[新しいトリガー] を選択します。
-
[入力] ウィンドウで、トリガーの名前を指定し、[OK] をクリックします。
-
右側に表示されるトリガー エディターで、[トリガーを有効にする] チェック ボックスをオンにして、トリガーを有効にします。
-
[条件タイプ] セクションのドロップダウン リストから [システム イベント] を選択します。
-
右側の [システム イベント名] ドロップダウン リストからシステム イベントを選択します。
-
[アクション タイプ] で、トリガーするアクションのタイプをドロップダウン リストから選択します。
-
アクション セクションで、アクション タイプのオプションを入力します。オプションについては、トリガーのアクション タイプおよびアクション ペインのセクションで説明されています。
たとえば、電子メール通知を送信する場合は、必要に応じて、通知を受信する受信者の電子メールアドレスを入力して確認します。アドレスフィールドに、電子メールアドレスのリストを、それぞれのアドレスをカンマ (,) またはセミコロン (;) で区切って指定できます。
-
[情報] タブをクリックします。
-
繰り返しの制限によってトリガーが起動されない間に複数の期間が経過した場合に、このトリガーが起動される最大回数を [キュー内の最大数] フィールドに指定します。ほとんどのトリガーは、次に使用可能なアクティブな操作ウィンドウのときに 1 回だけ起動する必要がありますが、次の繰り返し制限の開始時に複数のトリガー アクションを開始する必要がある場合があります。この数は負であってはなりません。
-
トリガーを保存します。
[Save (保存) ]オプションが有効になっていない場合は、[File (ファイル) ] > [Refresh All (すべて更新) ]を選択してリソースを更新し、[Save (保存) ]オプションを有効にします。
システムイベントトリガーをテストするには
-
[条件] パネルで、システム イベント名として CacheRefreshFailure を選択します。
-
[アクション タイプ] として [電子メールの送信] を選択します。
-
[リソース パス] フィールドに CacheRefreshFailure へのパスを指定します。
-
壊れたビューのキャッシュを更新します。
指定したメール受信者が電子メール通知を受信し、プロシージャCallsGetEnvironmentへのパスを実行した結果がログに書き込まれます。