Power Automate Dataverseコネクタはいい!① 選択した環境で○○系アクションもプレビュー (Microsoft Power Automate Advent Calendar 2023/12/10)

はじめに

この記事は、Power Automate Advent Calendar 2023 12月10日担当分の記事です。
この後の記事も楽しみですねー。ぜひカレンダーの購読登録をお願いいたしますー!

Power Apps Advent Calendar 2023 にも投稿しています。こちらもぜひ!

先日JPPC2023(Japan Power Platform Conference 2023 )のメインイベント
12/ 8 のアプリ&サイト開発Application AP-09セッションで登壇させていただきました。

こちらの記事については別途自分ブログで書こうかと思いますが、
この中で軽くお伝えしたDataverseコネクタのよいところについてもう少しだけ詳しく書きます。

TIPSPower AppsまたはPower Automateのスタンドアロンライセンス(有償ライセンス)が必要な範囲の記事となります。

登壇の記事を書きました!こちらから登壇資料のダウンロードも可能です。

Dataverseコネクタ

公式:Microsoft Dataverse – Connectors | Microsoft Learn

実際の使いかたやトリガー、アクションの説明は専用のページがあります。
こちらを確認される方がより詳しく把握できると思います。

TIPSDataverseコネクタはDataverse for Teamsでも基本は同様の内容となりますので、
そちらの実装の場合の参考ともなるかと思います。
※一部は制御があるかもしれませんが確認しきれてません。

NOTE以下公式から現時点のトリガーとアクションを載せました(2023/12/10時点の情報)
今後追加や変更がある可能性があります。

トリガー一覧

アクションが実行されたとき

Microsoft Dataverse アクションの完了時にトリガーします。

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

このトリガーを使用すると、Microsoft Dataverse テーブルで行が追加、変更、または削除された場合に、選択したオプションと一致するフローを開始できます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。

アクション一覧

先日選択した環境から○○する系ののアクションが一気に増えました。(現時点プレビュー)

ID で行を取得するこの操作を実行すると、Microsoft Dataverse テーブルで、ID が一致する行を取得できます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
バインドしていないアクションを実行するこの操作を実行すると、どのテーブルにも関連付けられていない環境で、Microsoft Dataverse の使用可能な操作を実行できます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
バインド済みアクションを実行するこの操作を実行すると、選択したテーブルに関連付けられた Microsoft Dataverse のアクションを実行できます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
バックグラウンドでオペレーションを実行する (プレビュー)この Power Automate アクションは、ファンクションに分類されないカスタム API を使用して、バックグラウンドで Microsoft Dataverse オペレーションを実行することができます。 ドロップダウン メニューに表示される API のリストは、このアクションと互換性のある API のみです。
ファイルまたは画像をアップロードするこの操作を実行すると、ファイルまたは画像コンテンツを、Microsoft Dataverse テーブルに、互換性を持つ列の種類を使用してアップロードできます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
ファイルまたは画像をダウンロードするこの操作を実行すると、ファイルまたは画像コンテンツを、Microsoft Dataverse テーブルからダウンロードできます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
変更セット要求を実行するこの操作により、Microsoft Dataverse コネクタ操作のグループを単一のトランザクションとして実行できます。 操作の 1 つが失敗した場合、成功したすべてのアクションがロールバックされます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
新しい行を追加するこの操作を実行すると、選択した Microsoft Dataverse テーブルに新しい行を追加できます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
行の検索 (プレビュー)この操作により、関連性検索を使用して Microsoft Dataverse 環境を検索し、検索語句に最も近い行を返すことができます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
行の関連付けを解除するこの操作を実行すると、Microsoft Dataverse のテーブル間に一対多または多対多の関連付けがある場合に、テーブル間で行と行のリンクを削除できます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
行を一覧にするこの操作を実行すると、選択したオプションに一致する Microsoft Dataverse テーブルの行でリストを作成できます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
行を削除するこの操作を実行すると、Microsoft Dataverse テーブルから行を削除できます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
行を更新するこの操作を実行すると、Microsoft Dataverse テーブルで選択した行を変更したり、行を新しく追加したりできます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
行を関連付けるこの操作を実行すると、Microsoft Dataverse のテーブル間に一対多または多対多の関連付けがある場合に、テーブル間で行と行のリンクを作成できます。 このコネクタは、以前は Common Data Service (現在の環境) と呼ばれていました。
選択した環境から ID で行を取得する (プレビュー)Power Platform 環境のテーブルから行を取得します。
選択した環境からファイルや画像をダウンロードする (プレビュー)Power Platform 環境内の行からファイルまたは画像データを取得します。
選択した環境から行を削除する (プレビュー)Power Platform 環境のテーブルから行を削除します。
選択した環境でバインドされたアクションを実行する (プレビュー)カスタム アクションを含む、Power Platform 環境内のテーブルにバインドされた Dataverse アクションを実行します。
選択した環境で未バインドのアクションを実行する (プレビュー)カスタム アクションを含め、Power Platform 環境でグローバル Dataverse アクションを実行します。
選択した環境で行の関連付けを解除する (プレビュー)Power Platform 環境内の個々の行間の関連付けを削除します。
選択した環境で行を関連付ける (プレビュー)同じ Power Platform 環境内で 1 対多または多対多の関係を持つテーブル内の個々の行を関連付けます。
選択した環境にファイルや画像をアップロードする (プレビュー)Power Platform 環境で、ファイルや画像の内容を連続して更新します。
選択した環境に新しい行を追加する (プレビュー)Power Platform 環境のテーブルに新しい行を作成します。
選択した環境の行を一覧表示する (プレビュー)Power Platform 環境のテーブルから行を一覧表示します。
選択した環境の行を更新する (プレビュー)Power Platform 環境内のテーブルの行を更新または追加 (更新/挿入) します。

トリガー(行が追加、変更、または削除された場合)

基本このトリガーを使います。自動化したクラウドフロー>Dataverse

トリガー条件の種類

以下のように作成、作成、更新、削除、作成または削除・・・などさらに細かく変更が可能です。

トリガーはWebhookですぐ動く!

こちらのトリガーはSPOトリガーのようなポーリングトリガー(一定間隔でチェックして動作→ライセンスやコネクタに応じてタイムラグが発生)とは異なり、Webhookトリガーなのですぐに動作します。
アプリ上で特定の列が更新された場合に動作という実装でも大きなタイムラグなく実装出来ます。

NOTEトリガーされてからの動作(非同期)なのでアプリ側に即時結果が反映されるわけではないです。数秒してリロードすれば反映されるようなイメージですね。

トリガーのその他優秀なところ!

以下このDataverseトリガーの優秀なところ(SharePointトリガー等と比較して)を挙げます。

列が指定できる!

トリガーの対象とする列を指定できます。カンマ区切りで複数指定も可能です。

比較:SPOの場合はこれはなく、トリガー後に項目またはファイルの変更を取得するアクションで判断します。
なので調整は可能ですが、Dataverseの場合は無駄にトリガーすること自体がないです。

SharePointのアクション:項目またはファイルの変更を取得する (プロパティのみ)
Power Automate 用 Microsoft SharePoint コネクタ | Microsoft Learn

行のフィルターが書ける!

トリガーの条件を行のフィルターとして書けます。例ではトリガーにしたフラグ列がはいの場合のみ動作するようにしています。

比較:SPOの場合はこの項目はなく、設定から「トリガーの条件」に書く必要があります。
なので同じことは出来ますが、Dataverseだと項目があるので後で見たときなどもわかりやすいです。

実行するユーザーでトリガーユーザーなど指定を変えれる!

これもポイントで通常自動で動作するフローは作成者(この場合プロセス所有者)で動作しますが、
Dataverseの場合は、トリガーしたユーザー=アプリのデータ操作者と変更が出来ます。こうするとレコードの更新者は実際に操作したユーザーとすることが可能です。またレコードの所有者への変更も出来ます。

比較:SPOの場合はこの項目はなくフロー作成者として動作します。
(自動トリガーではなくPower Apps (V2)トリガーでアプリからキックする場合は作成者または実行者を切り替えれます)

という感じで、さすがはPower Appsの純正?のトリガーという感じで他のコネクタと比較して優れた点が多いです。
公式でもご確認ください
行が追加、変更、または削除された場合、フローをトリガーする – Power Automate | Microsoft Learn

行を一覧にするアクション(レコード複数取得)

列を選択する

以下のように必要な列のみ指定が可能です

行のフィルター

SPOと同様にOdataクエリでフィルター指定が可能です

クエリの展開で親テーブルの指定列を一緒に取得できる!

ExpandQuery(クエリの展開)で以下のように式を書けば親テーブルの列を同時に取ってこれます。
これをやれば一旦取って、参照列の値を再度取り直して、、という実装が不要になりスマートです。

TIPSExpandQueryはちょっと書き方わかりずらく外人さんのブログくらいしかないかなと思います。
今後こちらも記事にしようかなと思います。(参照列のスキーマ名を指定して対象列はSelectで内部名を書く)

Fetch Xml クエリ

より複雑なクエリをFetch Xmlで書けます。これは複数の関連テーブルがあってそれらの値を条件にして取得するような、行のフィルターでは難しいクエリなどの場合に使用できます。

5000行以上取得する場合、または分割して取得

以下にあるように既定では一度に5000行までの取得となりますが、改ページをオンにして10,000など指定すればそこまで取れます。最大は10万の様です。
また、そのままで5000件を超える場合はスキップトークンが含まれそれを使ってループしての取得も出来るようです。odata.nextLinkを使用

フローで行のリストを使用する – Power Automate | Microsoft Learn

バインドされていないアクションの使用

フローを使用して、Dataverse でバウンド アクションと非バウンド アクションを実行する – Power Automate | Microsoft Learn

このアクションを使ったレコードの割り当てや共有なども可能です。
※現在のレコードの権限状況は取れないのでDataverse Web APIを使う必要あり

その他アクション

その他にも行を関連づける、関連付けを解除する。や、
画像やファイル コンテンツをアップロードまたはダウンロードする。や、
要求セットで更新する(下記)などのアクションがあります。
要求セットは複数アクションを入れて途中失敗したらロールバックしてくれるというものです。

NOTE※以前検証した際に不安定だった記憶であまり使用したことがないのでお詳しい方の記事を見ましょう

フローを使用して Dataverse で変更セット要求を実行する – Power Automate | Microsoft Learn

他の環境用のアクション(プレビュー)

先日見ていると他の環境に接続するアクションがプレビューとして出てきました!
リリースWaveで以前言っていたやつのようです。
以下公式のイメージ図と対応アクションを記載しています。トリガーはまだリリースされていないが今後出てくるようです。

NOTEレガシーコネクタの場合は環境選択が存在していたが廃止予定で、今のDataverseコネクタにはなかった。
これが出来ることで便利にはなる?が、セキュリティの考慮事項も増えるかと思いました。
(Power Appsの場合は以前から…メニューで環境変更が出来ていたが)

Microsoft Dataverse コネクタを使用した他の環境への接続 (プレビュー) – Power Automate | Microsoft Learn

おわりに

今回はDataverseコネクタのトリガーと主要なアクションを中心に記事にしてみました。
さすがPowerPlatform純正?と言える高機能なコネクタだなーと思います。
登壇時にはさらっとのお伝えだったので他の要素も含めて書きました。

Dataverseコネクタの使用時には参照列の指定やGUID列指定が必要だったり、
OdataクエリのFilterも癖があったりするので、そのあたりも機会あれば今後書こうかと思います。それでは。

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

ヨウセイ

ヨウセイ

一般職からSharePoint、C#、.NET系技術者へ、そこからPower App、Power Automate技術者へと転身。 ワンランク上のおっさんはPower Appsでシステム開発が出来る〜! qiitaや自社HPでも技術ブログを書いていました。

関連記事

コメント

この記事へのコメントはありません。

CONTENTS