トリガー

完了

Power Automate では、トリガーはクラウド フローを開始するイベントとして定義します。 これらのイベントは、ユーザーによって開始されたり、スケジュールに従って開始されたりします。また、カスタム コネクタなどのコネクタによって生成されることもあります。

その場合は、Power Automate で使用するトリガーがコネクタによって定義されます。 各コネクタに、トリガーのセットがそれぞれ含まれています。 コネクタは次の 2 つのグループに分類されます。

  • 表形式 - データがテーブルに保存されているデータ ソースで使用します。 Dataverse は表形式コネクタです。 表形式コネクタには、レコードの作成、更新、削除に使用するトリガーがあります。
  • 機能ベース - Twitter や Microsoft Outlook などのクラウド サービスで使用します。 これらのサービスの機能に、トリガーが関連付けられます。 たとえば、Outlook コネクタには、メールを受信した場合に使用するトリガーがあります。

トリガーの種類

Power Automate クラウド フローを開始するトリガーには、次の 3 つの種類があります。

  • 自動 - 定義したコネクタ イベント (新しいレコードの作成、特定のフォルダーへのファイルの作成など) によってフローが開始されます。
  • インスタント - ユーザー (アプリでのボタンの選択など) によってフローが開始されます。
  • スケジュール - フローが定期的に (平日の毎朝 9 時、1 時間おきなど) 実行されます。

このセクションでは、Dataverse トリガーの使用について説明します。 自動フローはデータ イベントでトリガーできます。 Dataverse コネクタには、複数の自動トリガーが含まれます。 最も使用されるのは、「レコードが作成、変更、削除されたとき」です。 「行が選択されたとき」や「アクションが実行されたとき」のようなトリガーも存在します。 簡単に「行が追加、変更、削除されたとき」について確認しましょう。

トリガー ステップでは、次のトリガー条件を指定する必要があります。

  • 追加されたとき
  • 追加されたとき、または削除されたとき
  • 追加されたとき、または変更されたとき
  • 追加されたとき、変更されたとき、または削除されたとき
  • 削除されたとき
  • 変更されたとき
  • 変更されたとき、または削除されたとき

Dataverse コネクタには、「ビジネス プロセス フローからフロー ステップが実行されたとき」が対象のインスタント トリガーが 1 つ含まれています。 この機能により、ユーザーはビジネス プロセス フローのステップ内で Power Automate クラウド フローを開始できます。

Dataverse コネクタには、「行が選択されたとき」が対象のトリガーが 1 つ含まれています。 この機能により、ユーザーはモデル駆動型アプリのフォームを使用し、Power Automate クラウド フローを手動で開始できます。

Power Automate クラウド フローでよく使用されるパターンとして、スケジュールに従ってトリガーを実行する 機能を使用し、その日が期限であるすべての行を取得して、1 日おきにすべての行をループ処理するという例があります。 このフローでは、Dataverse トリガーで子フローを呼び出すこともできます。

ポーリング トリガーとプッシュ トリガー

トリガーにより、イベントが発生したという通知が Power Automate クラウド フローに送られます。 トリガーは、ポーリングとプッシュの 2 種類に分けられます。 ポーリング トリガーは API への呼び出しを定期的に作成し、新しいメッセージがないかチェックします。 新しいデータがあると、トリガーによってフローが実行されます。 ポーリング トリガーの例として、タイマー トリガーがあります。 プッシュ トリガーは、サービスから新しいデータがプッシュされると、それに応答します。

トリガーを使用している場合、トリガーがポーリングかプッシュかは、表面的にはわかりません。 Dynamics 365 のコネクタ (廃止) はポーリング トリガーを使用していましたが、最新の Dataverse コネクタはプッシュ トリガーを使用しています。 プッシュ トリガーの方が効率が良く、リアルタイムで機能します。

トリガーを持たないコネクタもあります。 その場合は、スケジュール トリガーを使用することで、前回の実行より後に変更されたデータを取得できます。 つまり、この場合にポーリング パターンを使用します。 このパターンを使用する場合は、フローの実行頻度が高くなりすぎないように、繰り返しの間隔を数分取ることが必要です。

フィルターの使用

ソリューション アーキテクトは、各クラウド フローの実行回数を最小限に抑えることを検討する必要があります。 Power Automate でトリガーを作成および更新する場合に多くの人が陥りやすい過ちの 1 つに、行を取得した後に条件を設定し、フローによる処理が必要かどうかをチェックすることがあります。 Dataverse コネクタを使用する場合は、新しいデータと変更されたデータがトリガー ステップに含まれるため、行を余分に取得する必要はありません。

また、他のトリガーと同様に、Dataverse コネクタでもフィルターにトリガーを適用できます。 列の選択行のフィルター などのフィルターを使用することで、トリガーの対象となるデータを制限し、不必要なトリガーの実行を減らすことができます。

トリガーにフィルターが適用されたコネクタのスクリーンショット。

これら 2 つのフィルターの仕組みは次のとおりです。

  • 列の選択 - 一意の名前をコンマ区切りで指定した列のいずれかに変更が発生した場合にのみ、フローがトリガーされます。
  • 行のフィルター - OData 式でフローをトリガーする行を制限できます。 つまり、その条件を満たした行のみがフローをトリガーする対象となります。

Dataverse では、トリガーの出力に列が含まれていても、その列の値が変更されたことを意味するわけではありません。 変更した値のみを処理することが必要な場合は、事前と事後のイメージで変更を識別するプラグインを使用する必要があります。

現状では、フローがソリューションに含まれる場合、インスタント トリガーはアプリからは見えません。