次の方法で共有


Power Automate トリガーを最適化する

トリガーとは、Power Automate のクラウド フローを開始させるイベントです。 たとえば、メールを受信するたびに Microsoft Teams で通知を受け取るには、受信トレイにメールが届いたときにフローを開始するトリガーを設定します。 トリガーはフローの開始点であり、さまざまなイベントに基づくことができます。

トリガーのタイプ

Power Automate には主に 2 種類のトリガーがあります。 フローを作成すると、トリガーは自身を登録して、接続先のサービスをポーリングするか、サービスからのイベントをリッスンします。 トリガーは、指定されたイベントが発生したときにフローをアクティブ化します。

  • ポーリング トリガー: サービスを定期的にチェック (または ポール) して、特定のイベントが発生したかどうかを確認します。

    • : SQL トリガーは、一定の間隔で SQL サーバーをポールして、新しいレコードや更新されたレコード、または指定された条件を満たすその他の変更をチェックする場合があります。

    • フローのオフ動作: フローがオンになると、すべての未処理または保留中のイベントが処理されます。 フローをオンに戻したときに保留項目を処理したくない場合は、フローを削除してから再作成してください。

  • Webhook トリガー: 特定のイベントをリアルタイムでリッスンします。 イベントが発生すると、サービスは Power Automate に通知を送信し、フローを開始します。

    • : Outlook トリガーは、着信メールをリッスンし、新しいメールを受信するとすぐにフローをトリガーします。 この場合、トリガーは Outlook サービスをリッスンし、メールを受信するとすぐにフローをトリガーします。

    • フローのオフ動作: フローが再びオンになると、フローがオンになった後に生成されたすべての新しいイベントを処理します。

ポーリング トリガー

ポーリング トリガーが登録されると、X 分ごとに定期的にサービスがチェックされ、トリガーに適用されたフィルターに基づいて、新規または変更されたレコード/イベントの詳細が取得されます。 これらのチェックの頻度は、ユーザーのライセンスと最後のポーリングのタイムスタンプによって異なります。 X 分ごとに、このタイムスタンプに基づいてサービスを再ポーリングします。

次のようなシナリオが考えられます。

  • トリガーは、新しい SQL レコードが作成されたときにアクティブになるように設定され、毎分 (または指定された間隔で) SQL サービスをポーリングします。 このフローは、前回のポーリング以降に作成されたすべてのレコードに関する情報を取得するためのものです。
  • 新しいレコードが見つかった場合、フローがトリガーされます。 新しいレコードが見つからない場合、実行はスキップされます。
  • フローが停止すると (たとえば、9 月 13 日午後 12 時 30 分)、トリガーはこのタイムスタンプを記録します。
  • フローが再開されると (たとえば、9 月 14 日午後 1 時 30 分 (太平洋時間))、トリガーは最後のポーリング時刻 (9 月 13 日午後 12 時 30 分) から現在の時刻 (9 月 14 日午後 1 時 30 分) の間に作成されたすべてのイベントについてサービスをポーリングします。

この動作により、エラーや調整によってフローが一時的に停止した場合でも、データが失われることはありません。

注意すべきこと:

  • フローをオフにしても、トリガーは登録解除されません。 ポーリングを一時停止するだけです。 この設計により、フローの再起動時にデータが失われることがなくなります。
  • ポーリング動作を完全にリセットするには、フローの新しいコピーを作成する必要があります。 これにより、フローが初めてオンになったときにトリガーが再登録されるため、競合を避けるために既存のフローを削除する必要があります。

Webhook トリガー

Webhook トリガーは、ポーリング トリガーとは異なる動作をします。 Webhook トリガーは、サービスを定期的にチェックする代わりに、特定のイベントが発生したときに通知を受け取るようにサービスに登録します。 Webhook トリガーのしくみは次のとおりです。

  • 登録: Webhook トリガーが作成されると、特定のイベントの通知を受け取ることを示すためにサービスに登録します。
  • イベント通知: Webhooks は、イベント通知を提供する単純な HTTP コールバックです。 指定されたイベントが発生すると、サービスはそのイベントのすべての詳細を含むイベント通知を Webhook トリガーに送信します。
  • フローのアクティブ化: Power Automate では Webhook をトリガーとして使用できます。 Webhook トリガーは、イベント通知を受信するとフローをアクティブ化し、指定されたアクションを実行します。

詳細情報: トリガーが古いイベントに対して発生する

トリガー条件の設定

多くの Power Automate ユーザーは、データソースに新しい行が追加されたり、既存の行が変更されたりするたびに、フローが実行されるという問題に遭遇します。 ただし、特定の条件が満たされた場合にのみフローを実行するシナリオがよくあります。 この動作を実現するには、トリガーを正しく構成する必要があります。 トリガーに適切な条件を設定することで、フローが必要な場合にのみ実行されるようになり、効率が向上し、不要な実行が削減されます。

$100 を超える経費を提出するユーザーがマネージャーの承認を得る必要があるシナリオを考えてみましょう。 トリガー条件が指定されていない場合、フローは送信されるすべての経費に対して実行され、フロー作成者は $100 を超える経費を フィルター する追加の条件を指定する必要があります。 トリガー条件を実装することにより、経費が$100を超える場合にのみフローがトリガーされるようにします。

この例では、行が追加、変更、削除されたときにフローがトリガーされます。 条件は、金額が 100 より大きいかどうかをチェックし、条件が満たされると承認を開始します。 このフローは、テーブル内のデータが追加、変更、または削除されるたびに開始されます。

トリガー条件の代わりに条件を使用するフローのスクリーンショット。

この例では、フローには、行が追加、変更、または削除されたときに、金額が100より大きいかどうかをチェックし、続いて承認を開始するアクションのトリガー条件が含まれています。 このフローは、金額フィールドの値が 100 より大きい場合にのみ開始されます。

トリガー条件を使用したフローのスクリーンショット。

チップ

Power Automate のOData フィルタープロパティは、Dataverse データの変化に基づいてフローをトリガーする際の条件を正確に定義できる強力な機能です。 条件と、フローをトリガーできる列の名前を指定できます。 このアプローチは、フローのパフォーマンスを最適化し、必要な場合にのみフローを実行するのに役立ちます。

コンカレンシー制御の構成

一部のシナリオでは、フローがスループットが制限されているデータ ソースと対話する場合があります。 このような場合、トリガーの同時実行制御を構成すると、フローの実行をより効果的に管理するのに役立ちます。

既定では、クラウド フロー トリガーは、条件が満たされると、できるだけ多くの実行を同時に実行します。 ただし、同時実行の制御設定を調整することで、この動作を変更することができます。同時実行数を最小 1 から最大 100 まで制限することができます。 その他の実行は自動的にキューに入れられます。

同時実行管理を使用する方法:

  • 限られたスループット リソース: 自動化が並列実行をサポートしないオンプレミスのリソースに依存している場合、同時実行制御を構成することで、リソースの過負荷を防ぐことができます。

  • 競合状態の防止: 同時実行を制限することで、フローのインスタンスが一度に 1 つだけ実行されるようになり、並列実行によってダーティリードが発生するような競合状態を回避します。

コンカレンシー制御を構成するには、次のようにします。

  1. Power Automate ポータルで、構成するフローを開きます。
  2. トリガーを選択します。
  3. 設定で、同時実行制御オプションを有効化します。
  4. 許可する同時実行の最大数を指定します。 1 から 100 までの任意の数値を設定できます。
  5. 変更を保存して、同時実行制御設定をフローに適用します。

トリガー同時実行コントロールの設定画面のスクリーンショット。

重要な考慮事項

  • 元に戻せないアクション: 一度適用すると、同時実行制御の設定は元に戻せません。 同時実行制御を削除するには、新しいフローを作成する必要があります。 そのため、この機能を使う際は注意してください。
  • ベスト プラクティス: 同時実行制御は既定の設定のままにしておくことをお勧めします。 同時実行制御を適用する必要がある場合は、アクション数が最も少ないフローで適用することを検討してください。 たとえば、このような制御を必要とするアクションを専用の子フローに整理し、その子フローにのみ制御を適用できます。