記事作成の経緯
PowerAutomateを使用してDataverseからデータを取得する際に、依存関係にあるほかのテーブルからもデータを取得するような処理を今回実装しました。作業する際に関連する情報を見つけられないといったことがあったので、私自身の備忘録もかねてこの記事を投稿させていただきます。
実装について
今回はPowerAutomateを使用し、Dataverseの「行を一覧にする」のアクションとFetch Xmlクエリを活用しデータを取得することを想定しています。
PowerAutomateでの実装
こちらではDataverseの「行を一覧にする」のアクションを使用します。
テーブル名にはデータの取得元となるテーブルを選択し、Fetch Xmlクエリの項目にはFetchの書き込みを行います。(取得方法については事項で記載)
Fetch Xmlクエリ
Fetch Xmlクエリの記載例
<entity name="msdyn_aibdatasetfile">
<attribute name="msdyn_aibdatasetfileid" />
<attribute name="msdyn_name" />
<order attribute="msdyn_name" descending="false" />
<filter>
<condition attribute="createdon" operator="lt" value="2025-03-04T20:19:43.5381258Z" />
</filter>
<link-entity name="account" from="accountid" to="Test_table">
<all-attributes/>
</link-entity>
</entity>
</fetch>
基本的な文法は次の通りです。
・entryでテーブルの論理名を指定
<entity name="msdyn_aibdatasetfile">
・attributeで列の論理名を指定(ここで指定したデータのみ取得できます)
<attribute name="msdyn_aibdatasetfileid" />
<attribute name="msdyn_name" />
・all-attributesを使用すると列の指定をすることなくすべてのデータを取得できる
<all-attributes/>
・order attributeでデータの並び順を指定することができる
<order attribute="msdyn_name" descending="false" />
・filterを使用すると取得データの絞り込みを行うことができる
(こちらの記載例は作成日以前のデータの取得)
<filter>
<condition attribute="createdon" operator="lt" value="2025-03-04T20:19:43.5381258Z" />
</filter>
・Link-entryを使用するとリレーションのテーブルからデータの取得をすることができる
<link-entity name="account" from="accountid" to="Test_table">
<all-attributes/>
</link-entity>
・entry,fetchの文末には/で終了の記載を入れる
</entity>
</fetch>
Fetch Xmlクエリの確認方法
確認方法は以下の2つがあります。
設定が少し手間にはなりますが2番目の方法がおすすめです。
1.PowerPlatFormの詳細設定から確認
1.右上の歯車マークのクリック
2.Dynamics365の設定画面の右上のろうとのマークをクリック
3.検索欄から該当のテーブルを選択し右上の「Fetch Xmlのダウンロード」をクリック
こちらの方法は簡単な操作で確認をすることができ、保存されているビューをもとに該当する列の選択などがされた状態のFetchをダウンロードすることができます。
また選択のところから絞り込みの条件を指定することでフィルター条件も適用することができますが、リレーションが設定されたテーブルからのデータの取得が難しいかと思います。
2.FetchXML Builderから確認
1.XrmToolBoxをインストールしてMicrosoft365アカウントにログイン、環境へアクセスする
2.Tool LibraryからFetchXML Builderをインストールする
3.FetchXML Builderを開きテーブルや列、リレーションのあるテーブルを追加していく
こちらの方法を行う場合は、初期設定などが必要になりますがより細かく確認をすることができるので詳細な設定を行いたい方はこちらの方法がおすすめです。
まとめ
こちらの記事ではFetchを使用したデータの取得方法をまとめていきました。
なるべくわかりやすく記載をしているつもりではありますが、情報が足りていない部分があるとは思うので補足して調べながら進めていただければと思います。
最後までこちらの記事を読んでいただきありがとうございました