Dataverse トリガー

完了

トリガーと複数のアクションを使用する自動クラウド ワークフローを、Power Automate で構築できます。 トリガーは、クラウド フローを起動するイベントです。 Dataverse コネクタは 4 つのトリガーに対応しており、これを使用して Dataverse データ イベントに応じたフローを開始できます。

Dataverse コネクタのトリガーを次に示します。

  • 行が追加、変更、または削除された場合 - Dataverse テーブルで行の追加、変更、または削除が行われたら、このトリガーを使用してフローを開始します。 たとえば、"プロジェクト" テーブルに新しい行が追加された場合、システムはフローを実行する必要があります。

  • アクションが実行されたとき - Dataverse アクションが完了すると、このトリガーが発生します。 その結果、定義したカスタム ビジネス イベントから、システムがフローをトリガーします。 たとえば、EmployeeOnboarded イベントを作成し、それを使用してフローをトリガーできます。

  • ビジネス プロセス フローからフロー 手順が実行された場合 - このトリガーを使用すると、ビジネス プロセス フローのステップでユーザーがフローの実行ボタンを選択したときにフローを開始できます。 たとえば、ビジネス プロセス フローを使用した Microsoft Power Apps モデル駆動型アプリで、マネージャーの承認を取得するフローの開始ステップを作成できます。

  • 行の選択時 - Power Apps モデル駆動型アプリのユーザーが行を選択してフローを実行すると、このトリガーがフローを開始します。

注意

現時点で行の選択時トリガーは、Dataverse (レガシ) コネクタから新しい Dataverse コネクタにアップグレード中です。 新しいコネクタで他のトリガーを使用できるようになるまでは、このトリガーをレガシ コネクタで使用する必要があります。

各トリガーには設定が必要なさまざまなオプションがあります。 一部のトリガーには高度なオプションが存在し、そのトリガーの動作を細かく制御できます。 このトピックの残りの部分では、設定できる一般的なオプションについて、いくつか解説します。

行が追加、変更、または削除された場合

行が追加、変更、または削除された場合 トリガーを使用する際は、このトリガーの変更タイプ、テーブル、スコープ オプションを必ず設定します。 その他の設定はすべて任意です。

変更タイプ

変更タイプ トリガーを使用して、フローをトリガーするべき 1 つ以上のデータ行イベントを設定します。 たとえば、行の追加、変更、削除が行われたときや、これらのアクションが組み合わせられたときに、そのフローを実行するように選択できます。 これらのデータ行イベントは、Dataverse 環境で行への変更が発生した後に、そのフローをトリガーします。

変更タイプの追加や変更を行うと、現在の Dataverse テーブル行を出力として利用できるようになり、動的コンテンツ領域の後に続くステップでそれを使用できます。 変更タイプを削除した場合、Dataverse 行の行 ID のみを使用できます。

複数の変更タイプでフローをトリガーする場合や、タイプに応じた条件ロジックが必要な場合は、次の式を使用してフローをトリガーした変更タイプを取得できます。 SdkMessage プロパティには、作成、更新、または削除が含まれています。

triggerBody()?['SdkMessage'] 

1 つの行に対して複数の更新が完了した場合、行の列値が変化していなくても、そのフローがそれぞれの更新ごとにトリガーされます。 その行の更新が何度も完了したために、この状況が発生します。 この要因はフローのロジックで考慮する必要があります。

テーブル名

完全なリストからテーブル名を選択するか、またはテーブル名の入力を開始してリストをフィルターできます。 テーブル名はアルファベット順で表示されないため、多数のテーブルがある環境ではフィルターの利用が便利です。

スコープ

Dataverse テーブルを作成する際は、行の所有権タイプを指定します。 組織が行を所有することも、ユーザーやチームが行を所有することもできます。

スコープ オプションを使用すると、変更される行の所有者に応じて、フローをトリガーする条件を満たした行を指定できます。 テーブル行の所有権が組織である場合、スコープのオプションは組織のみです。 ユーザーやチームによる所有権が許可されたテーブルの場合、次のオプションのいずれかをスコープに対して選択できます。

  • 組織 - このオプションは既定です。 行を所有し、その変更アクセス許可を持つユーザーは、誰でもフローをトリガーできます。 さらに、組織が所有するテーブルの変更アクセス許可を持つユーザーは、誰でもフローをトリガーできます。

  • ユーザー - このオプションは最も制限が大きく、変更された行の所有者である場合にのみフローが実行されます。

  • 事業単位 - このオプションは、変更された行を事業単位のメンバーが所有している場合に、フローをトリガーします。 たとえば、ユーザーが 16 人存在するマーケティング事業単位に、自分が所属しているシナリオを考えてみましょう。 これら 16 人のユーザーのいずれかがアクションを完了した時に、その変更された行を事業単位の他のユーザーが所有していれば、彼らは自分のフローをトリガーできます。

  • 親: 下位の部署 - このオプションは、自分のフローをトリガーできるアクションを決定する際に、下位の部署のユーザーを含めます。 したがって、マーケティング事業単位に下位の部署 (マーケティング - 米国およびマーケティング - EMEA) が存在する場合、システムはフローの実行を決定する際に、これらのユーザーを含めます。

組織とユーザーは最も一般的な構成です。 すべてのユーザー向けのフローを作成する場合は、組織スコープが最適です。 自分の個人的な自動化を作成しており、他のユーザーが入力する一貫性がなく無関係なデータを最小限に抑えたい場合は、ユーザー スコープが最適です。

読み取り特権を持っていないデータ行も含めるようにスコープを設定できますが、そのフローは読み取り特権を持っている行に対してのみトリガーされます。

必須の選択肢に加えて、次の一般的に使用されるオプションもトリガーには用意されています。

  • 列の選択

  • 行のフィルター

  • 実行するユーザー

列の選択

列の選択オプションは、変更された行を含めるように変更タイプを設定した場合にのみ適用されます。 そのデータ行の変更に含まれている場合にフローが実行する、テーブル列のリストを指定できます。

このオプションは、フローの実行回数の削減に役立つ機能です。 たとえば、"連絡先" テーブルの "名" 列と "姓" 列が変更中である場合にのみフローを実行するべき場合は、次に示すように列の選択オプションを設定します。

firstname,lastname

また、フローをトリガーした行の列を更新するために、そのフローが後で "行の更新" アクションを使用する場合は、この機能の利用が重要です。 無限ループを回避するために、更新するべき列を列の選択オプションに絶対に含めないでください。

行のフィルター

行のフィルター オプションを使用し、行の列値に応じてフローをトリガーする行をフィルターします。 たとえば、予算を超過した行のみを含めるように、プロジェクト テーブルの行をフィルターできます。 フロー アクションに条件確認を追加しても同じタスクを実現できますが、行のフィルター式を使用する場合よりも効率が低下します。

OData 式を使用して行のフィルターを指定できます。 変更を Dataverse に保存してから、その式をシステムが true と評価した場合にのみ、フローが実行されます。

contoso_amountoverbudget gt 10000

このモジュールのデータ クエリに関するトピックの後半では、一般的な OData 式について解説します。

実行するユーザー

実行するユーザー オプションを使用すると、フローを所有していないユーザーのコンテキストを使用して実行されるフローの、それぞれの Dataverse アクションを設定できます。 フローの所有者には 別のユーザーの代わりに操作する Dataverse 特権が必要です。 この特権は代理人セキュリティ ロールに既定で含まれていますが、他のセキュリティ ロールにも追加できます。

次に示すオプションで実行するユーザー機能を設定できます。

  • フロー所有者 - そのフローを作成したユーザー。

  • 行の所有者 - そのフローをトリガーした Dataverse 行を所有するユーザー。 チームが行を所有している場合、このオプションはフォールバックされ、フローの所有者として実行されます。

  • 変更ユーザー - Dataverse 行に対してアクションを実行し、そのフローのトリガーや変更を行ったユーザー。

別のユーザーとして実行するべき Dataverse アクションごとに、アクションの設定タブで呼び出し元の接続を使用するを選択します。

次のような例で考えてみましょう。 John は、新しいプロジェクト テーブルの行にタスクを追加するフローを作成します。 Mary が新しいプロジェクトの行を作成すると、そのフローが実行され、システムによって新しいタスクが追加されます。 その後 John は、これらの新しく追加されたタスクを表示できます。

John が実行するユーザー オプションを変更ユーザーに変更し、タスクの行の追加機能を呼び出し元の接続を使用するに変更すると、作成者として John ではなく Mary がタスク行に表示されます。