Power Automate も Power Apps も Azure Logic Apps も、Dataverse に対しては同じ Web API を叩いている
「このツールではできない」と止まるとき、問題は API に届いていないことではなく、そのコネクタが必要な機能を露出しているかどうかに 9 割ある。
壁の正体を理解すれば、問い直すべき場所が変わる。


全ツールが同じ API に届いている

Dataverse の入口は、すべてのツールで共通だ。Power Automate のコネクタも、Power Apps のフォームも、Azure Logic Apps のアクションも、最終的には Dataverse Web API(OData v4 実装) を経由してサーバーと通信する。

この構造は公式ドキュメントで裏付けられている。Dataverse Web API は「Organization service のすべてのメッセージを functions/actions として露出している」(Microsoft Learn: Web API types and operations, 2025 年時点)。コードで直接 Web API を呼べば、サーバーが持つ全操作にアクセスできる。

コネクタの内部も同様だ。「Connectors create a proxy or wrapper around an API that allows the underlying App Service Environment to talk to Microsoft Power Automate, Power Apps, Azure Logic Apps and Power BI」(dev.to/wyattdave: The 4 APIs of the Power Platform)。コネクタは直接の接続ではなく、Azure APIM(API Management)を経由した OpenAPI ラッパーとして機能する。すべてのコネクタホストは、この APIM 経由で同一の Dataverse バックエンドに到達している。

つまり、「Power Automate は Dataverse の API に届いていない」という問いの立て方は、最初から的を外している。


サーバーは全集合、コネクタは部分集合

問題は API の手前ではなく、コネクタという抽象化層が何を露出しているかにある。

レストランで例えるなら、厨房(Dataverse サーバー)はメニュー全品を作れる。ただし、各テーブル係(コネクタ)が持ってくる注文票(OpenAPI 定義)に書かれた項目しか頼めない。厨房が何を作れるかではなく、そのテーブル係がどこまで注文を受けるかで、食べられるものが決まる。

2026 年 6 月時点で、Power Automate の Dataverse コネクタが露出しているアクションは 12 件、トリガーは 3 件だ(Microsoft Docs: connect-to-other-environments.md, 2025 年 4 月更新)。

カテゴリ操作
行の CRUDCreate a new row / Update a row / Get a row / List rows / Delete a row
検索Search rows with relevance search
関連付けRelate rows / Unrelate rows
バッチExecute a changeset request
ファイルDownload file or image content / Upload file or image content
カスタムPerform bound and unbound actions

これは Dataverse Web API が持つ全操作セットの部分集合だ。バルク削除、ソリューション管理、カスタム API の直接呼び出しなどは、コネクタの外にある。コードで Web API を直接叩いたときだけ、それらの全集合に届く。


GUI 同士でも露出が違うのは製品判断

「GUI ツール同士なのになぜ差が出るのか」という疑問は自然だが、答えは技術的制約ではない。コネクタチームが何を実装・露出したかという製品判断で決まっている。

同じコネクタ ID(commondataserviceforapps)を Power Automate と Azure Logic Apps は共有している。それでも「When a row is selected」トリガーはPower Automate 専用で、Logic Apps では使えない。公式ドキュメントで “available only for Power Automate” と明記されている。同じ ID を持ちながら、ホストによって露出が異なる。これは技術的な限界ではなく、コネクタ定義側の判断だ。

Power Apps は事情が異なる。「Power Apps doesn’t use a connector to work with Dataverse. It connects directly to Dataverse outside of the connector framework.」(Microsoft Docs: dataverse-canvas-app.md, 2025 年確認)。Canvas App は APIM を経由せず、Dataverse バックエンドに直接接続している。コネクタの制約を受けない代わりに、その最適化の複雑さは Power Apps 側が吸収する。


露出機能はバージョン更新で変わる——壁は今日の壁とは限らない

「このツールでは無理だと聞いた」という情報も、いつの時点の話か確認が必要だ。コネクタの露出機能は更新で実際に変化してきた。

時期変更内容
2020 年 5 月Dynamics 365 connector 非推奨発表
2022 年 8 月現行 Dataverse コネクタへの移行完了。「Search rows」「Execute changeset」「Upload/Download file」等が追加
2022 年 10 月Dataverse (Legacy) が新規 Logic Apps で使用不可
2022 年 10 月 31 日Dynamics 365 connector が Power Automate / Canvas Apps で完全無効化
2023 年 10 月“selected environment” アクション(クロス環境操作)Preview 開始
2025 年 4 月(doc 更新)“selected environment” アクション GA。ただし「Search rows」「Perform a changeset」は Environment パラメータ未対応が継続明記

出典:Microsoft Docs: important-changes-coming.md / power-platform/blog 2023 年 10 月 26 日

2022 年の移行で追加された「Search rows」も、2025 年 4 月時点では “selected environment” バリアントでは動かない。「追加された」と「すべての文脈で使える」は別の話だ。現在の制約を確認するには、最新の公式ドキュメントを見るしかない。


壁に当たったときの 3 段問い直し

「このツールではできない」と感じたとき、問いを 3 段階に分解すると判断が速くなる。

① サーバーはその機能を出しているか

Dataverse Web API が持つ operations(functions/actions)の一覧は、Microsoft Learn: Web API types and operations で確認できる。ここにない機能は Dataverse 側の制約だ。あれば次の問いに進む。

② どの表面(コネクタ・直接接続)がその機能を露出しているか

Power Automate の 12 アクションに含まれないなら、Logic Apps / Power Apps / Web API 直呼びで対応できるか確認する。Power Apps の直接接続(コネクタフレームワーク外)や Custom Connector の作成、Azure API Management ラッパーの構築も選択肢に入る。

③ どれだけの責任を引き受けるか

コードで Web API を直接呼べば全操作に届くが、エラーハンドリング、再試行ロジック、認証管理、監査ログ——コネクタが吸収していた責任をすべて自前で実装することになる。また「Dataverse builds on top of 25+ services, including Azure SQL, Azure Cosmos DB, and Azure Storage」(codemag.com, 2023)という多層スタックの上で動く API を扱う以上、操作の副作用の把握も書き手の仕事になる。

この 3 段を問い直した後、「最も薄い適切な層」を選ぶ。目的に必要な機能を露出している表面の中で、引き受ける責任が最小のものが、今の設計に適したツールだ。


「コードで直接書けば全部できる」は半分正しく、半分の話

「コネクタの制限があるなら全部コードで書けばいい」という発想は半分正しい。Web API を直接叩けば全集合に届くのは事実だ。ただし、その全集合が意味するのは権限だけではない。

Dynamics 365 connector が 2022 年 10 月 31 日に Power Automate / Canvas Apps で完全無効化されたとき、そのコネクタ経由で動いていたフローは全停止した。コネクタが吸収していた互換性維持の責任が、その日に利用者側へ転嫁された。コードで直接書いた場合、同様の変更があったとき、追随も自分の仕事になる。

コネクタを使う選択は、制限を受け入れる代わりにコネクタチームが負う保守責任に乗る選択でもある。全集合に届く自由と、その自由に付随する保守コストは、セットで評価する必要がある。


まとめ

Dataverse コネクタの能力差は、API へのアクセス可否ではなく、各コネクタ(抽象化層)がサーバー機能をどこまで露出しているかという製品設計の差だ。壁に当たったとき最初に問うのは「不可能か」ではなく「サーバーはこの機能を持っているか、どの表面が露出しているか、その責任を引き受けられるか」の 3 段だ。


次の一歩:まず Microsoft Learn の「Dataverse Web API types and operations」で、目的の操作が Web API として存在するかを確認する。次に Power Automate コネクタの最新アクション一覧(connect-to-other-environments.md)と照合する。差分があれば Custom Connector か Web API 直呼びが選択肢に入る。

→ 関連記事:Dataverse 取込ツールを能力 2 軸で選ぶ——「緑(成功)」は行セキュリティの着地を保証しない
→ 関連記事:Power Platform:抽象度と制御権の全体像