注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

オブジェクトセット条件

Automate アプリケーションでは、さまざまなオブジェクトセット条件を使用して、事前に定義されたオブジェクトセット内のオブジェクトデータの変更があると、自動的にエフェクトをトリガーできます。

オブジェクトデータの変更は、元データセットアクションタイプ外部アプリケーションから来ることがあります。

評価の遅延によっては、データの変更が数分以内または 1 時間以内に自動化で検出されることがあります。以下の 評価遅延セクションで詳細を学習してください。

さらに、特定のオブジェクトセット条件はエフェクト入力パラメーターを公開します。これらは、例えば、自動化をトリガーしたオブジェクトにアクセスするためにエフェクト内で使用できる変数です。パラメーターのタイプは、実行モード と条件によって異なります。

現在、オブジェクトセットで動作する 5 つの異なる条件タイプがあります。

  • セットに追加されたオブジェクト: オブジェクトセットに新しいオブジェクトが現れるたびにトリガーします。
  • セットから削除されたオブジェクト: オブジェクトセットからオブジェクトが離れるたびにトリガーします。
  • セット内で変更されたオブジェクト: オブジェクトセット内でオブジェクトが変更されるたびにトリガーします。
  • メトリックの増加または減少: オブジェクトセット上の集計メトリックが変更されたときにトリガーします。
  • しきい値を超えた: メトリックのしきい値が超えた場合や、関数が true を返す場合にトリガーします。

オブジェクトセット条件タイプ

オブジェクトセット定義

ほとんどのオブジェクトセット条件タイプでは、最初にオブジェクトセットを指定する必要があります。そのために、ユーザーインターフェースで動的にオブジェクトセットを定義するか、下のスクリーンショットに示すように、スイッチトゥ セーブ ボタンをクリックして保存されたオブジェクトセットを選択できます。

オブジェクトセットを動的に定義する場合は、まず希望するオブジェクトタイプを選択してください。次に、監視するオブジェクトセットを絞り込むために、必要に応じてフィルターを追加できます。たとえば、以下に示すサポートチケットのオブジェクトタイプは、ステータスが Open のオブジェクトのみを監視するように絞り込まれています。フィルターが選択されていない場合、そのタイプのすべてのオブジェクトを監視しています。選択したオブジェクトタイプとフィルターは、オブジェクトセットがリアルタイムで監視できるかどうかに影響します。以下の 評価遅延セクションで詳しく学習してください。

オブジェクトセット定義

条件タイプ

このセクションでは、個々のオブジェクトセット条件タイプに関する詳細情報を提供します。

セットに追加されたオブジェクト

セットに追加されたオブジェクト 条件は、オブジェクトが事前に定義されたオブジェクトセットに追加されるたびにトリガーされます。まず、上記の オブジェクトセット定義セクション に従ってオブジェクトセットを指定してください。

オブジェクトセットフィルターを指定した場合、ユーザーからの新しいオブジェクトまたはオブジェクトの編集が、セットに追加されたオブジェクトの条件をトリガーすることがあります。下の例では、ステータスプロパティ値が Open のサポートチケットのオブジェクトセットを監視しています。条件がトリガーされる方法は 2 つあります。新しいサポートチケットのオブジェクトがステータス Open で作成されるか、既存のサポートチケットがステータスを Open に変更するかです。

オブジェクトセットにフィルターを指定しない場合、そのタイプのすべてのオブジェクトを監視しています。つまり、オントロジーに完全に新しいオブジェクトが追加された場合にのみ、自動化がトリガーされます。

セットに追加されたオブジェクト

オブジェクトセット定義を設定した後、エフェクトの実行モードも定義できます。デフォルトでは、バッチ実行が選択されます。実行モードの違いについて詳しく学習してください。

セットに追加されたオブジェクト 条件は、条件をトリガーしたオブジェクトをエフェクト入力として公開します。選択した実行モードによって、これは単一の 追加されたオブジェクト または 追加されたオブジェクト のオブジェクトセットのいずれかになります。エフェクト入力の使用方法について詳しく学習してください。

この条件タイプでサポートされる評価遅延は次のとおりです。

  • ライブ評価
  • スケジュールされた評価

セットから削除されたオブジェクト

セットから削除されたオブジェクト 条件は、オブジェクトが事前に定義されたオブジェクトセットから削除されるたびにトリガーされます。まず、上記の オブジェクトセット定義セクション に従ってオブジェクトセットを指定してください。

オブジェクトセットフィルターを指定した場合、オブジェクトの削除やユーザーからのオブジェクトの編集が、セットから削除されたオブジェクトの条件をトリガーすることがあります。たとえば、ステータスプロパティ値が Open のサポートチケットのオブジェクトセットを監視しています。条件がトリガーされる方法は 2 つあります。ステータスが Open のサポートチケットのオブジェクトが削除されるか、既存のサポートチケットがステータスを Open から別のステータスに変更するかです。

オブジェクトセットにフィルターを指定しない場合、そのタイプのすべてのオブジェクトを監視しています。つまり、オントロジーからオブジェクトが削除された場合にのみ、自動化がトリガーされます。

セットから削除されたオブジェクト

オブジェクトセット定義を設定した後、エフェクトの実行モードも定義できます。デフォルトでは、バッチ実行が選択されます。実行モードの違いについて詳しく学習してください。

セットから削除されたオブジェクト 条件は、条件をトリガーしたオブジェクトをエフェクト入力として公開します。選択した実行モードによって、これは単一の 削除されたオブジェクト または 削除されたオブジェクト のオブジェクトセットのいずれかになります。エフェクト入力の使用方法について詳しく学習してください。

この条件タイプでサポートされる評価遅延は次のとおりです。

  • ライブ評価
  • スケジュールされた評価

セット内で変更されたオブジェクト

セット内で変更されたオブジェクト 条件は、事前に定義されたオブジェクトセット内でオブジェクトが変更されるたびにトリガーされます。この条件タイプは、オブジェクトセット内のすべてのプロパティ値の変更を監視したい場合に適しています。オブジェクトが特定の値に変更されたときに自動化をトリガーする場合、セットに追加されたオブジェクト条件がより適切な選択です。

セット内で変更されたオブジェクト

まず、上記の オブジェクトセット定義セクション に従ってオブジェクトセットを指定してください。オブジェクトセットを定義した後、以下の画像に示すように、監視するプロパティを制限できます。プロパティが選択されていない場合、監視されたオブジェクトセット内の任意のプロパティ変更が自動化をトリガーします。

さらに、オブジェクトが追加されたものを含める および オブジェクトが削除されたものを含める を指定できます。これらのオプションは、同時に監視されているオブジェクトセットに追加される(または削除される)オブジェクトの変更が、変更と見なされて自動化をトリガーするかどうかを制御します。つまり、両方のオプションを無効にした場合、変更後もオブジェクトセットに残るオブジェクトだけが自動化をトリガーします。

以下に示す例では、USA に属するサポートチケットのオブジェクトの状況を監視しています。オブジェクトが追加されたものを含める を有効にし、オブジェクトが削除されたものを含める を無効にしました。これは、削除されたサポートチケットのオブジェクトが自動化をトリガーしないことを意味します。これは、監視されているオブジェクトセットから離れるためです。ステータスプロパティが変更される間に位置が変わるチケット、たとえば UK にも同じことが当てはまります。オブジェクトが削除されたものを含めるが無効になっているため、オブジェクトセットから離れて自動化がトリガーされません。ただし、オブジェクトが追加されたものを含める が有効になっているため、オブジェクトセットに追加されたオブジェクトを変更済みとしてカウントしています。つまり、UK から USA に変更されたサポートチケットのオブジェクトは自動化をトリガーします。新しく作成された USA の場所にあるオブジェクトも同様です。

セット内で変更されたオブジェクト

オブジェクトセット定義を設定した後、エフェクトの実行モードも定義できます。デフォルトでは、バッチ実行が選択されます。実行モードの違いについて詳しく学習してください。

セット内で変更されたオブジェクト 条件は、条件をトリガーしたオブジェクトをエフェクト入力として公開します。選択した実行モードによって、これは単一の 変更されたオブジェクト または 変更されたオブジェクト のオブジェクトセットのいずれかになります。エフェクトセクションでエフェクト入力の使用方法を詳しく学習してください。

この条件タイプでサポートされる評価遅延は次のとおりです。

  • ライブ評価
  • スケジュールされた評価

メトリックが増加または減少

セットから削除されたオブジェクト 条件は、事前に定義されたオブジェクトセット内のオブジェクトセットメトリックが変更されるたびにトリガーされます。例えば、オブジェクトセット内のオブジェクトの総数や、数値オブジェクトプロパティ値の平均などの集計が考えられます。まず、上記の オブジェクトセット定義セクション に従ってオブジェクトセットを指定してください。

次に、メトリックプロパティを選択できます。次のいずれかを選択できます。

  • オブジェクトセット内のオブジェクトの総数
  • 監視対象のオブジェクトセット全体から特定の数値プロパティの平均、最大、最小、または合計

次に、増加 または 減少変更タイプとして選択します。

下の例では、ニューヨークの空気質センサー全体の一酸化炭素プロパティの平均値が増加するたびに、自動化がトリガーされます。

セット内で変更されたオブジェクト

この条件タイプでサポートされる評価遅延は次のとおりです。

  • スケジュールされた評価

しきい値を超えた

しきい値を超えた 条件では、時間の経過とともに true または false を返す一連のチェックを定義できます。すべてのチェックが true を返すと、しきい値が超えたと見なされます。しきい値がどちらの方向にも超えると、エフェクトがトリガーされ、アクティビティが記録されます。

UI で定義されたロジック関数でバックアップされたロジック で構成された条件アイテムを作成できます。

この条件タイプでサポートされる評価遅延は次のとおりです。

  • スケジュールされた評価

UI で定義された

UI を使用してしきい値条件アイテムを定義するには、条件の追加 をクリックし、条件タイプとして 条件 を選択します。次に、保存されたオブジェクトセット を指定する必要があります。次に、保存されたオブジェクトセットのオブジェクトタイプに応じて、比較するプロパティを選択できます。その後、比較演算子を選択し、最後に、比較対象のメトリックまたは静的値を選択します。

以下に示すしきい値を超えた条件は、ユーザーインターフェースで定義されています。この例では、条件は、ニューヨークのすべての空気質センサーの最大値が 0.05 より小さい場合をチェックしています。

セット内で変更されたオブジェクト

関数でバックアップされた

条件アイテムを UI で定義する代わりに、関数条件タイプを使用することもできます。関数でバックアップされた条件は、デフォルトのしきい値ルールオプションでサポートされていないものを含む、より複雑な条件定義を可能にするように設計されています。関数でバックアップされた条件は、true または false の単一のブール値を返す関数を定義および公開することで動作します。関数はモニターが評価されるときに呼び出され、その実行の結果を示す必要があります。状態が変更された場合、イベントが記録されます。

Automate で使用する関数の作成について詳しく学び、このセクションの例関数を参照してください。

以下の例では、空気質センサーの 50% 以上が不健康であるかどうかを計算する関数を使用しています。その場合、true を返し、それ以外の場合は false を返します。

例:関数でバックアップされたしきい値を超えた条件

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 /** * この関数は、渡された空気品質センサーの50%以上が不健康とみなされるかどうかを計算します。 * センサーは、一酸化炭素の値が `0.05` を超えると不健康と見なされます。 */ @Function() public async areMoreThanFiftyPercentOfSensorsUnhealthy (airQualitySensors: ObjectSet<automateExampleAirQualitySensor>): Promise<boolean> { // 全センサーの数を取得します const totalSensorCount = await airQualitySensors.count(); // 不健康とみなされるセンサーの数を取得します const unhealthySensorCount = await airQualitySensors.filter(sensor => sensor.carbonMonoxide.range().gt(0.05)).count(); // センサーの数がnullだった場合、falseを返します if (totalSensorCount === null) { return false; } // 不健康とみなされるセンサーの数が全体の50%以上だった場合、trueを返します return ((unhealthySensorCount ?? 0) / totalSensorCount) > 0.5; }