348 Views
December 09, 25
スライド概要
C# で Dataverse Web API を使う動機と使用ライブラリなど
開発する際のネットワーク環境の注意点などを語っています。
mishizaki
C# で Dataverse API を使う 【メタバース】メタバースでLT会&もくもく会! Vket技術・学術系ウィーク 石崎 充良 1 / 36
自己紹介 石崎 充良 ( @mishi_cs ) C# Tokyo コミュニティ管理メンバー GitHub: https://github.com/m-ishizaki blog: https://rksoftware.hatenablog.com/ 2 / 36
Dataverseとは 3 / 36
Dataverse とは https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/data-platform-intro 4 / 36
Copilot に聞いてみよう! Dataverse は、Microsoft Power Platform の中核を担うクラウドベースのデータ 管理・統合基盤で、業務アプリケーションのデータを安全に保存・管理し、 Power Apps や Power Automate などで活用できる仕組みです。 Dataverse の概要 旧名称: Common Data Service (CDS) 役割: 単なるデータベースではなく、アプリケーションプラットフォームとして 機能 提供形態: Microsoft Power Platform の一部としてクラウド上で利用可能 主な特徴 テーブル構造 データは「テーブル」に格納され、行(レコード)と列(フィールド)で管理さ れる。 標準テーブル(顧客、注文など)に加え、業務に合わせたカスタムテーブルも作 成可能。 セキュリティとアクセス制御 Azure Active Directory と連携し、ロールベースのセキュリティでユーザーごと にアクセス権を制御。 Power Platform との連携 Power Apps で作成したアプリのデータ保存先、Power Automate のフロー実行 基盤、Power BI の分析対象として利用できる。 ビジネスロジックの適用 計算列、ビジネスルール、ワークフローを定義してデータ品質を維持。 5 / 36
GitHub Copilot に聞いてみよう! Dataverse は、Microsoft Power Platform(Power Apps、 Power Automate、Power BI)や Dynamics 365 のためのクラ ウドデータプラットフォームです。 - 役割: アプリやフロー間で共通のデータ層を提供し、一貫性 と再利用性を確保 - データ構造: テーブル(行・列)でデータを保存。標準テー ブル+カスタムテーブルを利用可能 - セキュリティ: ロールベース、列・行レベル、環境単位の制 御を提供 - ロジック: ビジネスルール、プラグイン、Power Automate による自動化を統合 - 連携: OData/Web API、コネクタ、データフローで他シス テムと統合 - 利点: モデルの標準化、管理性、スケーラビリティ、Power Platform とのシームレス連携 用途例や API 例が必要なら指示してください。 6 / 36
Power Platform のためのテーブル 環境構築が不要 誰もが持っている Microsoft 365 開発者プログラムで 試せる Power Platform でのデータ保持の 第一の選択肢 https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/data-platform-intro 7 / 36
C# で扱う動機 8 / 36
C# で扱う動機 https://learn.microsoft.com/ja-jp/power-apps/developer/data-platform/download-tools-nuget https://learn.microsoft.com/ja-jp/power-apps/developer/data-platform/community-tools 9 / 36
Web API を使用して操作を実行する https://learn.microsoft.com/ja-jp/power-apps/developer/data-platform/webapi/perform-operations-web-api https://learn.microsoft.com/ja-jp/power-apps/developer/data-platform/webapi/use-web-api-metadata 10 / 36
データベース管理クライアントソフト ジャパニーズ システム エンジニア が求めるもの - データの挿入 - データの更新 - データの削除 - データのインポート - Entity Relation 図の生成(せめてテーブル定義の取得) - テーブル定義からテーブルの作成(せめて列追加・テーブル自体は手作成) Web API なら実現できる 11 / 36
API ドキュメント けっこうしっかり書かれています。 でも、もっと手っ取り早くコピペで試せ るようなコードが掲載された記事 どこかにないかな~ だれかブログに書いてないかな~ https://learn.microsoft.com/ja-jp/power-apps/developer/data-platform/webapi/create-entity-web-api 12 / 36
と思っているあなた 素晴らしいブログを書かれている方が コードは GitHub から取得可能 https://rksoftware.hatenablog.com/entry/2025/08/28/193416 https://github.com/m-ishizaki/DataverseClient/ 13 / 36
API 概要 14 / 36
基本はシンプル 基本 REST API。 必要あれば JSON 投げつけるだけ。JSON が返ってくるだけ。 Microsoft アカウントの認証が必要。 データの型には結構うるさい。 15 / 36
JSON 投げるだけ やりたいこと SQLだと HTTPメソッド データ取得 Select Get データ挿入 Insert Post データ更新 Update Patch 列追加 Post 定義取得 Get 16 / 36
認証用の nuget ライブラリ Microsoft.PowerPlatform.Dataverse.Client https://www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client/#depen dencies-body-tab 17 / 36
Web GUI で API 実行 下のメニュが開く ここをクリックで別タブ でAPIの結果が表示される 18 / 36
サインインが必要 19 / 36
開かない(ことが多い) 20 / 36
本来は開くはず 条件は未検証 認証直後か 管理画面を開いた直後 (認証が入る) は開けることが多い気 がする JSONで結果が得られる / 36
C# でアプリを作った 22 / 36
コマンドラインで実行 23 / 36
ブラウザで認証が入る 24 / 36
エラー 通信が遅いとエラーになる、気がする 25 / 36
レスポンスを表示してみた 26 / 36
うまくいくと 27 / 36
こんな環境でチャレンジしていた 28 / 36
JSON 29 / 36
ライブラリ 30 / 36
認証用の nuget ライブラリ Microsoft.PowerPlatform.Dataverse.Client https://www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client/#depen dencies-body-tab 31 / 36
今回のコードはこんな感じ 認証 トークンを入れて API呼び出し 32 / 36
ライブラリの本気 テーブル決まっていれば こうなる https://learn.microsoft.com/ja-jp/dotnet/api/microsoft.xrm.sdk.iorganizationservice.create?view=dataverse -sdk-latest 33 / 36
データベース管理クライアントソフト ジャパニーズ システム エンジニア が求めるもの 汎用性なら JSON で扱う - データの挿入 - データの更新 - データの削除 - データのインポート - Entity Relation 図の生成(せめてテーブル定義の取得) - テーブル定義からテーブルの作成(せめて列追加・テーブル自体は手作成) Web API なら実現できる 34 / 36
まとめ 35 / 36
まとめ ⚫ ジャパニーズ システム エンジニア が求めるもの ⚫ 通信環境は大事 ⚫ ライブラリは2つから選択 36 / 36
ありがとうございました。 石崎 充良 37 / 36