この記事では、次の方法について説明します:
- 複数のイベントストリームからのデータを監視し、アクティベーター ルールを定義してアクションを自動化する
- アクティベーター モデリング機能を使用して、データ プロパティの平均値、最大値、最小値など、複数の高度な条件を設定します。
Scenario
この例では、マシンの FlowRate と Vibration を監視することで、ウォーターポンプ (マシン) の正常性を追跡できます。 目標は、マシンの実行中に振動が異常で大量の水 (FlowRate) を移動している場合に、アラートの送信やビジネス プロセスの開始などのアクションを自動的に実行することです。 水ポンプの振動が高い場合は、基になる問題が通知される可能性があります。ただし、FlowRate が重要でない限り、それは予想されます。
データフローを監視するマシンは、2 つのイベントストリームにデータを流します。
- MachineHeartbeat イベントストリームには、マシンを識別する MachineNumber 列と、マシンが実行されているかどうかを示す MachineRunning 列 (1) が含まれます (0)。 マシンの状態が変化するたびにイベントが生成されます。
- MachineSensorsReadings イベントストリームには、FlowRate 列と Vibration 列と共に MachineId 列が含まれています。 すべてのマシンは、数秒ごとにセンサーの読み取り値を出力します。
2 つのイベントストリームは、MachineSensorsReadings の MachineId と MachineHeartbeat の MachineNumber という異なる列を使用してマシンを識別することに注意してください。 両方の列が同じマシン識別子の値を保持します。
このシナリオでは、次 の条件がすべて 満たされたときにアラートを生成します。
- 過去 1 時間の最大 振動 数は 18 を超えます。
- 過去 10 分間の平均 FlowRate は 185 を超えます。
- 機械が稼働しています。
アクティベータールールは、複数のイベントストリームに基づく複雑な条件をサポートします。 イベント列に基づいて計算プロパティを作成し、ルール条件で結合できます。
このシナリオでは、両方のストリームからフィードする オブジェクト を作成することで、2 つのイベントストリームをまとめます。 イベント ストリームをオブジェクトに追加する場合は、イベント内のどの列がオブジェクトのインスタンスを一意に識別するかを指定します。
Note
Activator では、異なる一意識別子列を使用して同じオブジェクトを識別するイベントストリームの結合がサポートされています。 このシナリオでは、 MachineSensorsReadings は MachineId を 使用し、 MachineHeartbeat は MachineNumber を使用し、Activator はそれらを 1 つのオブジェクトに結合します。
次に、average(FlowRate)、max(Vibration) 用の別のプロパティを計算し、 それらを IsRunning プロパティと組み合わせるプロパティを作成します。 ルールを評価するときに、Activator は定義に従ってプロパティ値を計算し、すべてのプロパティの最後の計算値を維持します。 これらの値は、条件を評価するときに使用されます。
アクティベータールールでは、>条件を設定し、 などのオプションのフィルターを追加する必要があります。 条件が満たされると、フィルターも満たされている場合に、ルールが適用されます。
次の図に示すように、条件によってルールが駆動されます。
解決策
両方のイベントストリームに アクティベーター の宛先を追加します。 両方のイベントストリームで同じ Activator インスタンスが使用されていることを確認します。
両方のイベントストリームは、同じアクティベーターの宛先で構成されます。
アクティベーター項目を開きます。 これで、オブジェクト内の両方のイベントストリームを結合し、ルールを設定できます。
これら 2 つのストリームを結合するには、任意のストリームを選択し、[ 新しいオブジェクト] を選択します。
ルールに必要なオブジェクトと列のインスタンスを識別するために使用する列名を選択し、[ 作成] を選択します。 各イベントの MachineId 列の値は、イベントを生成したマシンを識別するキーです。
別のイベントストリームを選択し、[新しいオブジェクト] を選択し、[ビルド オブジェクト] ウィンドウで [既存のオブジェクトに追加] を選択します。 MachineNumber 列を一意の識別子として選択します。 [割り当て]を選択します。 各ストリームが異なる識別子列を使用している場合でも、2 つのストリームが 1 つのオブジェクトに結合されるようになりました。
これで、計算プロパティを定義できます。 過去 10 分間に FlowRate の平均を計算するための属性を作成します。 FlowRate 属性を選択し、[詳細の編集] を選択します。
[定義] ウィンドウで、[概要の追加] を選択し、[平均] を選択し、ウィンドウ サイズとして 10 分を設定します。 保存 を選択します。
[Vibration]\(振動属性\) を選択し、[Edit details]\(詳細の編集\) を選択します [定義] ウィンドウで、[概要の追加] を選択し、[最大] を選択し、ウィンドウ サイズとして 1 時間を設定します。 保存 を選択します。
次に、ルールを作成します。 [振動]プロパティを選択し、[新しいルール]を選択します。
定義ペインで、しきい値として 18 の条件を超える増加を設定します。
FlowRate プロパティと MachineRunning プロパティのフィルターを追加します。
電子メールや Teams メッセージの送信、パイプライン、ノートブック、関数などのビジネス プロセスの実行、Power Automate を使用したコードなしのカスタム アクションの実行など、任意のアクションを選択します。 [保存して開始] を選択します。
次のステップ
アクティベータールールの詳細については、「アクティベータールールの 作成と管理」を参照してください。