トリガー
Power Automate では、トリガーはクラウド フローを開始するイベントとして定義します。 これらのイベントは、ユーザーによって開始されたり、スケジュールに従って開始されたりします。また、カスタム コネクタなどのコネクタによって生成されることもあります。
その場合は、Power Automate で使用するトリガーがコネクタによって定義されます。 各コネクタに、トリガーのセットがそれぞれ含まれています。 コネクタは次の 2 つのグループに分類されます。
- 表形式 - データがテーブルに保存されているデータ ソースで使用します。 Dataverse は表形式コネクタです。 表形式コネクタには、レコードの作成、更新、削除に使用するトリガーがあります。
- 機能ベース - Twitter や Microsoft Outlook などのクラウド サービスで使用します。 これらのサービスの機能に、トリガーが関連付けられます。 たとえば、Outlook コネクタには、メールを受信した場合に使用するトリガーがあります。
トリガーの種類
Power Automate のクラウド フローを開始するトリガーには、次の 3 つの種類があります。
- 自動 - コネクタに定義されたイベント (レコードが作成された、ファイルが特定の場所に追加されたなど) によってフローが開始されます。
- インスタント - ボタンを押すなど、ユーザーが手動でフローを実行します。
- スケジュール - フローが定期的に (平日の毎朝 9 時、1 時間おきなど) 実行されます。
このセクションでは、Dataverse でのトリガーの使用について説明します。 自動化されたフローは、プラットフォームのイベント フレームワーク内で、データ イベントからトリガーされます。 Dataverse コネクタには、レコードが作成、更新、または削除された場合に使用できる 1 つの自動化トリガーが含まれています。
トリガー ステップで、次のトリガー条件を指定する必要があります。
- 追加済み
- 追加済み、または削除済み
- 追加済み、または変更済み
- 追加済み、変更済み、または削除済み
- 削除済み
- 変更済み
- 変更済み、または削除済み
Dataverse コネクタには、ビジネス プロセス フローからフロー ステップを実行する場合に使用できる、1 つのインスタント トリガーが含まれています。 この機能により、Power Automate のクラウド フローを、ユーザーがビジネス プロセス フローのステップとして手動で開始できます。
Dataverse コネクタには、行が選択された場合に使用できる 1 つのトリガーが含まれています。 この機能により、Power Automate のクラウド フローを、モデル駆動型アプリのユーザーが、行を操作するフォーム内で手動で開始できます。
Power Automate のクラウド フローでよく使用されるパターンであれば、スケジュールに従ってトリガーを実行する機能を使用し、その日が期限であるすべての行を取得して、1 日おきにすべての行をループ処理するという例があります。
ポーリングとプッシュ トリガー
トリガーは、イベントが発生したという通知を Power Automate のクラウド フローに送ります。 トリガーは、ポーリングとプッシュの 2 種類に分けられます。 ポーリング トリガーは API への呼び出しを定期的に作成し、新しいメッセージがないかチェックします。 新しいデータがあると、トリガーによってフローが実行されます。 ポーリング トリガーの例として、タイマー トリガーがあります。 プッシュ トリガーは、サービスから新しいデータがプッシュされると、それに応答します。
トリガーを使用している場合、トリガーがポーリングかプッシュかは、表面的にはわかりません。 Dynamics 365 のコネクタ (廃止) はポーリング トリガーを使用していましたが、最新の Dataverse コネクタはプッシュ トリガーを使用しています。 プッシュ トリガーの方が効率が良く、リアルタイムで機能します。
トリガーを持たないコネクタもあります。 その場合は、スケジュール トリガーを使用することで、前回の実行より後に変更されたデータを取得できます。 つまり、ポーリング パターンを使用します。 このパターンを使用する場合は、フローの実行頻度が高くなりすぎないように、繰り返しの間隔を数分取ることが必要です。
フィルターの使用
ソリューション アーキテクトは、各クラウド フローの実行回数を最小限に抑えることを検討する必要があります。 Power Automate でトリガーを作成および更新する場合に多くの人が陥りやすい過ちの 1 つに、行を取得した後に条件を設定し、フローによる処理が必要かどうかをチェックすることがあります。 Dataverse コネクタを使用する場合は、新しいデータと変更されたデータがトリガー ステップに含まれるため、行を余分に取得する必要はありません。
また、他のトリガーと同様に、Dataverse コネクタでもフィルターにトリガーを適用できます。 フィルターを使用すると、フロー実行の実装を回避できるため、不必要なフローの実装を減らすことができます。
前の図では、Dataverse トリガーの行が追加、変更、または削除された場合のトリガーに、次の 2 つのフィルターが適用されています。
- 列フィルター - 列が指定されている場合、フローはリストに含まれるいずれかの列が変更された場合にのみ実行されます。
- 行フィルター - OData クエリが指定されている場合、フローをトリガーできる行がフィルター式によって判断されます。
Dataverse の場合、トリガーの出力に列が含まれていても、その列の値が変更されているとは限りません。 変更した値のみを処理することが必要な場合は、事前と事後のイメージで変更を識別するプラグインを使用する必要があります。
注
現状では、フローがソリューションに含まれる場合、インスタント トリガーはアプリからは見えません。