条件付きでトリガーを実行

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:3分
  • メトリックベース トリガーは単一のメトリクスに基づいて実行されます。条件スクリプトは、トリガーがフローを開始するかどうかを決定する追加の要件を課します。

    始める前に

    必要なロール:admin

    このタスクについて

    条件スクリプトは、トリガーの条件が満たされ、トリガーが ワークフロースタジオ フローを実行する前に実行されます。このようにして、条件スクリプトは、トリガー条件が満たされた場合でも、トリガーがフローを実行しないようにすることができます。たとえば、多くの場合に、データは時間の経過とともに変動します。わずかな変動により、不要な重複トリガーイベントが発生する可能性があります。条件スクリプトは、そういった誤った重複を防ぐことができます。

    条件スクリプトは、モデレータースクリプトと呼ばれることもあります。

    条件スクリプトは常に true (トリガーする) または false (トリガーしない) を返します。これらのスクリプトの記述方法については、以下を参照してください。 のスクリプティング ServiceNow Fundamentals. スクリプトを試すには、以下を参照してください。 を理解する メトリックベース API.

    手順

    1. 移動先 すべて > MetricBase (メトリックベース) > MetricBase トリガー > トリガー条件スクリプト.
    2. [新規] を選択します。
    3. フォームのフィールドに入力します。
      フィールド 説明
      名前 条件スクリプトの名前。
      アプリケーション 条件スクリプトのスコープ。値 [グローバル (Global)] は、アクションがすべてのアプリケーションに適用されることを意味します。
      説明 条件スクリプトの機能の説明。True または False を返すのはどのような場合か?
      スクリプト JavaScript を入力するためフィールド。フローを実行するために true を返すようにします。
    4. 条件スクリプトを記述します。

      スクリプトを記述するときは、条件ステートメントについて考慮します (実行する必要がある場合とそうでない場合)。すべてが true と評価された場合、スクリプトは true を返し、フローが実行されます。それ以外の場合は実行されません。次のスクリプト例では、低高度 (レベル 1 で定義) でドローンの移動速度が速すぎる場合にフローをトリガーします。この例は、条件スクリプトを記述する一般的な方法を示しています。

      1. フィルター関数パラメーターとして渡されるトリガー定義を取得します。
      2. フィルター関数パラメーターとして渡される、トリガーイベントの原因となっているレコード (current) を取得します。
      3. フィルター関数パラメーターとして渡される、トリガー条件を満足するレコードから時間を取得します。
      4. フィルター関数パラメーターとして渡されるトリガーレベルを取得します。
      5. レベル 1 のトリガー条件が満たされ、travel_state が移動または速度と等しい場合は、これらのパラメーターを使用して true を返します。
        function filter(/*GlideRecord*/ triggerDefinition, /*GlideRecord*/ current, /*GlideDateTime*/ start, /*int*/ level) {
        	// retrieve current travel state of drone
        	var travel_state = String(current.travel_state);
        	
        	// the drone is traveling at a significant speed, and the altitude just went below the threshold 
        	if (((travel_state === 'traveling') || (travel_state === 'speeding')) && (level === 1)){
        		return true; //process this trigger
        	}
        	
        	return false; // don't process this trigger
        }
        
      注:
      条件スクリプトは迅速に実行する必要があります。
    5. [送信] を選択します。

    次のタスク

    ワークフロースタジオ を使用して、フローをトリガーに関連付けます。フローを設定するときに、作成した条件スクリプトを選択できます。
    図 : 1. ワークフロースタジオ で条件スクリプトをトリガー定義に追加する
    条件スクリプトをトリガー定義に追加します。

    メトリックベース トリガーフロー [sys_flow_metric_trigger] テーブルでトリガーフローに条件スクリプトを関連付けることもできます。ここで条件スクリプトをトリガーフローに関連付けると、ワークフロースタジオ には表示されませんが、トリガーによって実行されます。

    図 : 2. メトリックベース トリガーフローで条件スクリプトを関連付ける
    メトリックベーストリガーフローテーブルでの条件スクリプトの関連付け