mcpField
A
add-dataverse

add-dataverse

github.com/microsoftデータ・データベース1.1k306 回インストール今日更新
リポジトリ

add-dataverse について

Power Apps プロジェクトに Microsoft Dataverse のテーブルを追加するスキルです。スキーマ計画、安全なテーブル作成、データソース追加、生成された TypeScript サービスの確認、ビルド検証を案内します。

主な機能

  1. 01スキーマと依存関係の計画
  2. 02既存テーブルの確認
  3. 03テーブルと列の安全な作成
  4. 04TypeScript モデルとサービスの生成
  5. 05ビルドと変更内容の記録

活用シーン

  1. 01既存の Dataverse テーブルへのアプリ接続
  2. 02新機能向けの関連テーブル作成
  3. 03Dataverse データ用 CRUD サービスの生成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/microsoft/power-platform-skills --skill add-dataverse

インストール後、Claude Code で/add-dataverseを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
api-authentication-reference.md
data-architecture-reference.md
dataverse-reference.md
table-management-reference.md

詳細

📋 共有手順: shared-instructions.md - 複数の項目に関わる内容です。

参考資料:

Dataverse の追加

2 つの方法があります。既存のテーブル(Step 5 に進みます)または新しいテーブル(全ワークフローを実行します)。

ワークフロー

  1. 計画 → 2. API 認証の設定 → 3. 既存のテーブルを確認 → 4. テーブルを作成 → 5. データソースを追加 → 6. 生成されたファイルを確認 → 7. ビルド

Step 1: 計画

メモリバンクでプロジェクトのコンテキストを確認します。ユーザーに次のことを尋ねます。

  1. どの Dataverse テーブルが必要ですか?(例:account、contact、cr123_customentity)
  2. そのテーブルは環境内にすでに存在しますか?それとも新しく作成する必要がありますか?

テーブルがすでに存在する場合: Step 5 に進みます。

新しいテーブルを作成する場合:

  • 必要なデータについて尋ね、適切なスキーマを設計します
  • 適切な場合は標準の Dataverse テーブルを使用します(人物には contact、組織には account)
  • 依存関係グラフを作成します。階層の分類については、data-architecture-reference.md を参照してください
  • EnterPlanMode で計画モードに入り、テーブル、列、リレーションシップ、作成順序を含む ER モデルを提示します
  • ExitPlanMode で承認を得ます
Step 2: API 認証の設定(テーブルを作成する場合)

詳細については、api-authentication-reference.md を参照してください。

az account show   # Verify Azure CLI logged in

# Find your Dataverse environment URL:
# In make.powerapps.com → Settings → Developer resources → Web API endpoint
# It looks like: https://<org-name>.crm.dynamics.com/api/data/v9.2/
# Use the base URL: https://<org-name>.crm.dynamics.com

$api = Initialize-DataverseApi -EnvironmentUrl "https://<org>.crm.dynamics.com"
$headers = $api.Headers
$baseUrl = $api.BaseUrl
$publisherPrefix = $api.PublisherPrefix

システム管理者またはシステムカスタマイザーのセキュリティロールが必要です。

Step 3: 既存のテーブルを確認(テーブルを作成する場合)

作成する前に、必ず既存のテーブルをクエリしてください。

$existingTables = Invoke-RestMethod -Uri "$baseUrl/EntityDefinitions?`$filter=IsCustomEntity eq true&`$select=SchemaName,LogicalName,DisplayName" -Headers $headers

Find-SimilarTables、Compare-TableSchemas、Build-TableNameMapping 関数については、table-management-reference.md を参照してください。

AskUserQuestion で調査結果をユーザーに提示します。

  • 再利用できるテーブル(一致する列を持つテーブルがすでに存在する)
  • 拡張が必要なテーブル(存在するが、一部の列が不足している)
  • 作成が必要なテーブル(一致するものが見つからない)
Step 4: テーブルを作成(テーブルを作成する場合)

作成前に明示的な確認を得ます。依存関係の順に作成します。

  • Tier 0:参照テーブル(依存関係なし)
  • Tier 1:主エンティティ(Tier 0 を参照)
  • Tier 2:従属テーブル(Tier 1 を参照)

table-management-reference.md の安全な関数を使用します。

Step 5: データソースを追加

各テーブルについて、次を実行します。

pa app add data-source --connector dataverse --table <table-logical-name>

テーブルごとにコマンドを実行すれば、複数のテーブルを追加できます。

ステップ 6:生成されたファイルを確認する

このコマンドで次のファイルが生成されます。

  • src/generated/models/{Table}Model.ts -- TypeScript インターフェース。テーブルにファイル列/画像列がある場合は、{Table}FileColumnName、{Table}ImageColumnName、{Table}UploadColumnName の共用体型も生成されます
  • src/generated/services/{Table}Service.ts -- CRUD メソッド(create、get、getAll、update、delete)。ファイル列/画像列がある場合は、upload、downloadFile、downloadImage、deleteFileOrImage も生成されます

ユーザーに使用例を提示してください。

import { AccountsService } from "../generated/services/AccountsService";

const result = await AccountsService.getAll({
  select: ["name", "accountnumber"],
  filter: "statecode eq 0",
  orderBy: ["name asc"],
  top: 50
});
const accounts = result.data || [];

重要なルール:

  • fetch/axios ではなく、生成されたサービス(例:AccountsService.getAll())を使用してください
  • 実際のデータを取得するには、result.data を確認してください
  • 必要な場合を除き、生成されたファイルは編集しないでください
  • Dataverse のコードを書く前に、dataverse-reference.md を読んでください -- 選択肢フィールド、仮想フィールド、ルックアップ、ファイル列/画像列には、いずれも重要な注意点があります
ステップ 7:ビルドする
npm run build

続行する前に TypeScript のエラーを修正してください。まだデプロイしないでください。

メモリーバンクを更新する

追加(または作成)したテーブル、生成されたファイル、スキーマに関する注意事項を記録してください。

コメント