2.3K Views
May 24, 25
スライド概要
2025/05/24(土) 気ままに勉強会 #113 の登壇資料です。
https://kimamani.connpass.com/event/355948/
Power Automate クラウドフロー の Dataverse アクション
「選択された環境から行を一覧にする」
のページングにはキヲツケロッ!!
迷探偵やまさん Dataverse 頁処理の謎(エニグマ) #きままに勉強会 2025/05/25 山田 晃央(Yamada, Teruchika) Microsoft MVP Business Applications 2020 - @yamad365 https://qiita.com/yamad365
おしながき Dataverse でハマったので、 “とある知見”を共有します。 ミンナ、キヲツケロッ 2
自己紹介 ども、やまさんデス!
山田 晃央(やまだ てるちか) ◼ Microsoft MVP Business Applications Power Apps ◼ お気軽に 「やまさん」 とお呼びください ◼ 詳しくは「yamad365」で検索ください ◼ 共著 「Microsoft Power Apps入門 手を動かしてわかるローコード開発の考え方」 https://qiita.com/yamad365 yamad365
https://appsweeklynews.connpass.com 毎週 金曜日、 21時30分 から YouTube Live で Power Apps ブログ更新をネタに語ってます #AppsWeeklyNewsJP
はじめに やりたかったコト 6
やりたかったコト • 複数環境で「同じレイアウトの Dataverse テーブル」 • そのデータを、まとめて CSV 出力したい • 5,000件以上含まれる可能性がある 【余談】 人間は“めんどくさがり”なのです。可能であれば「1本 のフローでまとめて全部取ってきたい」と考えますよね。 なぜなら「同じレイアウト」なので接続する環境が変更で きれば良いワケですから
やりたかったコト 環境A 環境A CSV 環境B 環境C 環境 Y 環境B CSV 環境C CSV 8
できるのか? 9
できそうだ! 10
今日は、そんな Dataverse アクション のおはなしです。
この範囲に特化した内容で続けます。 環境A 環境A CSV 環境B 環境C 環境 Y 環境B CSV 環境C CSV 12
ネタばれ? すでに Qiita で公開している内容を補完していきます。 https://qiita.com/yamad365/items/7882f0fde53dca5784a7 (´-`).。oO(文字だと伝わらないトコを伝えにきたよたぶん) 13
Dataverse コネクターとアクション 機能・仕様は公式情報や実際の動作をご確認ください。 14
Dataverse から一覧取得するアクション
そっくりサン 16
何が違うの? 指定した「環境」の テーブルからデータ 取得が可能 「フローが存在する環境」の テーブルからデータ取得 ※他環境は不可 17
公式情報 • 「行を一覧にする」 https://learn.microsoft.com/ja-jp/connectors/commondataserviceforapps/?WT.mc_id=DX-MVP5004053#%E8%A1%8C%E3%82%92%E4%B8%80%E8%A6%A7%E3%81%AB%E3%81%99%E3%82%8B • 「選択された環境から行を一覧にする」 https://learn.microsoft.com/ja-jp/connectors/commondataserviceforapps/?WT.mc_id=DX-MVP5004053#%E9%81%B8%E6%8A%9E%E3%81%95%E3%82%8C%E3%81%9F%E7%92%B0%E5%A2%83%E3%81%8B%E3% 82%89-id-%E3%81%A7%E8%A1%8C%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B 18
検証! 19
5千件を超えるデータを取得する方法 • Dataverse テーブルに登録されている 5,000 件を超えるデータを FetchXML クエリを使用して取得する https://jpdynamicscrm.github.io/blog/powerautomate/fetch-xml/
アクション設定の改ページを忘れずに! 21
FechXML クエリとは? • Use FetchXml to query data - Power Apps | Microsoft Learn FetchXml is a proprietary XML based query language used to retrieve data from Dataverse. FetchXml は、Dataverse からデータを取得するために使用される独 自の XML ベースのクエリー言語です。 22
「行を一覧にする」 「行を一覧にする」アクションは、 期待したページング動作をします。 23
「行を一覧にする」 • “そのフローが存在する環境”の Dataverse テーブルしか対象にできません • 1回のアクション実行で 最大 5千件 取得できます • ページングは期待通りに動きます 24
「選択した環境の行を一覧にする」 「選択した環境の行を一覧にする」 アクションは、期待したページング 動作はしません! 調査した限りでは、必ず“1回目の 値”しか取得できません 25
「選択した環境の行を一覧にする」 • “アクションで指定した環境”の Dataverse テーブルからデータ取得が可能です • 1回のアクション実行で 最大 2千件 取得できます • ページングは期待通りに動きませんッ!! 26
※検証時のご注意 • 「Do Until」アクションの最大実行回数を減らしましょう。 初期状態だと 60 回が最大です…… 27
結論! • 「行を一覧にする」アクションは、ページングが可能 • 「選択した環境の行を一覧表示する」アクションは、 調査検証した限りではページング未対応 • どんなに頑張っても無理! • Skip Token も、まともに帰ってきません!常に Null !! 28
問い合わせしてみた いったいどういうことだってばよ? 29
問い合わせてみた結果 Power Automate における「選択した環境から行を一覧表 示」アクションは、OData ベースの API や標準の「行を一 覧表示」アクションとは異なり、@odata.nextLink のよう な OData スタイルのページネーショントークンを返却値と して完全にはサポートしていません。 このコネクタはクロス環境での利用を簡素化することを目的 として設計されていますが、その結果として Skip Token プ ロパティの設定や読み取りが期待通りに機能しない場合があ ります。 30
やはり、ページングできないッ!! 31
まとめ まいったね、こりゃ 32
まとめ •「行を一覧にする」アクションは、 ページングが可能 •「選択した環境の行を一覧表示する」 アクションはページング未対応 •「選択した環境の行を一覧表示する」 アクションは最大 2,000行が取得上限
やりたかったコト 環境A 環境B 環境C 取得対象に2千件以上データが存在する場合 「選択した環境の行を一覧表示する」 では要件を満たせない可能性が高い 環境A CSV 環境 Y 環境B CSV 環境C CSV 逆に「2千件 以内」であれば、 まったく問題なく(?)利用可能です 34
現時点における対応 環境A 環境A CSV 環境B 環境B CSV 「行を一覧表示する」 を利用して、 “各々の環境”に フローをデプロイして 対応する 環境C 環境C CSV 35
ミンナ キヲツケロッ!!
まず「作る」「試す」。 話はソレからだ。
貴方のアイディアと、 ほんの小さな仕組みで、 業務が改善される! (かもしれない)
素晴らしい Power Platform Life & コミュニティー体験をッ!
ありがとうございました Thank you Merci Danke schön 고맙습니다 Obrigado Gracias