不可解な動作を確認したので、歴史の断片として、あるいは同様の現象でお悩みの方にお届けする情報としての記録です。
はじめに
当記事は 2025/03/05 時点の Microsoft 365、および Power Platform の環境をもとに作成しています。皆さんのお手元にある環境バージョンや、今後の更新などで変更になる可能性があります。必ず最新の公式情報、および自身の環境を確認するようにしてください。加えて、歴史の断片として記録を残す目的もあるため、当記事へ今後の更新を反映するものではありません。記事作成時点の情報である点を予めご了承ください。
結論
何が不可解か?というと、
Power Automate クラウドフローの Dataverse からデータ取得をするアクションで、
FechXML を利用したページングが期待した動作をしないパターンがある
になります。
細かい調査までは難しい話題なのですが、複数環境で同様の結果になっており、自分が試した限りでは再現性100%です。なので、フィードバックをしなければ・・・という状態です。
導入
Dataverse テーブルから5千件を超えるデータを下記の記事を参考に FechXML クエリを利用して取得しようと思ったのですよ。
で、”自分がやりたいコト”に向けて少し改造したら・・・
「あれ?」となって、色々と調べるコトになった、です。
期待した動作をするフロー
期待する動作(=ページングがうまく動作する)フローの全体像はこちらです。前述の記事に記載ある内容なので、詳細は紹介した記事を参照ください。
取得する Dataverse テーブルは、Title というテキスト列と、No という名前の整数列のみで、1万件(10,505 件)のデータを事前に登録してあります。
Dataverse コネクターの「行を一覧にする」アクションと FechXML クエリはこんな感じです。
Learn には「既定値は 2000 です。」とありますが、5千件単位でページングされたデータが取得できます。
期待した動作を”しない”フロー
前述のフローを少し改造したモノがこちらです。期待した動作をしない、というパターンです。
ほぼ一緒ですねw
FechXML も同様です。
ほとんど一緒で、アクションを1つ変更しただけなのに、こちらはページングがうまく動きません。
実行結果としては、
- 同じ値が延々と Dataverse テーブルから取得されます
- データは、2千件しか取得されません
- 結果、Do Until が終了せず最大回数実行されます
という状態になります。解せぬ。
何がダメそうか?
検証した限りですが、期待した動作をするフローと異なる唯一のポイント「選択された環境から行を一覧にする」アクションが ページングにうまく対応できていない になります。
なお、上記の公式情報には「既定 = 5000」と明記されているのに、2千件しか取得できません。FechXML クエリに count を指定してもダメでした。
加えて、アクションの設定で”別の環境を指定”しようが、フローが存在する”デプロイされている環境”を指定しようが結果は変わらず、ページングはうまく動作しませんでした。
と、いうことで、現時点で、当方には「動くアクションを選択する以外に打つ手なしッ!!」という結論になっています。
まとめ
Dataverse コネクターの「選択された環境から行を一覧にする」アクションは、当方が調査した限りではページング処理に未対応、あるいは期待された動作をしない、というのが現状のようです。
「行を一覧にする」アクションであれば期待した動作をするので、コチラを利用するしかない、という個人的な結論になっています。
「選択された環境から行を一覧にする」アクションであれば、環境を任意に選択して操作が可能なので汎用性が高いのですが、2千件以上のデータがうまく取得できないので、期待する動作をするアクションを利用せざるをえません。と、なると、同じフローを各々の環境に配置しないといけない、などの手間が発生します。残念無念。
もし、何かしらの参考情報をお持ちの方は是非とも情報共有を賜れますと幸いです。
それでは、皆さま。素晴らしい Power Platform Life を!