Power Automate から Dataverse の行を一覧にするアクションを利用すると、既定ではページングにより5,000レコードが取得できます。こちらはページングの量を設定から増やすと100,000行まで取得できますが、それ以上のレコードを取得するにはひと工夫が必要です。今回はその方法をご紹介します。
目次
作成するフローのイメージ
このようなフローを作成します。Do untilとFetch XML を利用します。

作成方法
変数の準備
ページ番号と取得したレコードの件数を保管する変数をInteger形式で宣言します。


fetchXMLの式を取得する
fetchXMLでのフィルター条件を取得します。モデル駆動型アプリにて、フィルターを編集します。

設定したフィルター条件にて、FetchXMLをダウンロードします。

ダウンロードしたFetchXMLをDataverseの行を一覧にするアクションのFetchXMLクエリのフィールドにペーストします。page = ""
を以下のように加えて、pageNumber
変数を追加します。これにより、ページ送りができるようになります。

続けて、取得できたレコードの件数を変数に格納します。以下のようにLength
関数を利用します。

ページ送りをしていくと、いつか値がなくなり件数が0になります。するとストップするようにします。それはDo untilに記載します。

このCountは最大ページ数に当たります。Do untilの制限で5,000が最大です。この方法でページ送りをすると、1ページあたり5,000件のため、5,000×5,000件のレコードを取得できます。
つまり、25,000,000(2千5百万)件のレコードを取得できます。これを上回る場合、Fetch XMLのフィルター条件で分割して取得するとよいでしょう。例えば、オートナンバーなどで番号が割り振られている場合、下一桁0~9でフィルターしてそれぞれDo untilすれば、10倍のレコードを取得することができます。下2桁にすれば100倍です。
Timeoutには、Power Automateの上限である30日間を指定します。クーロン式で指定する必要があります。既定では1時間となっているので、とりあえず最大にしたい場合はP30D
(30日間)と入力するとよいでしょう。
次に、変数の値を増やすアクションにてページ番号を1増やしてループ処理を続けます。

以上、ご参考になれば幸いです。