migrate-to-dataverse

作成者: microsoft

既存のCanvas AppのYAMLファイルを読み取り、Power FXデータソース呼び出しを同等のDataverseテーブル呼び出しに置き換えます。ユーザーが移行を希望する場合に使用します…

npx skills add https://github.com/microsoft/power-cat-skills --skill migrate-to-dataverse

Migrate Canvas App Data Sources to Dataverse

Read the YAML files of the current Canvas App and replace all Power FX data source calls with Dataverse equivalents for the following requirements:

$ARGUMENTS

CRITICAL: Review Guidance First

Before making any changes, you MUST read and internalize the technical reference document:

  • ${CLAUDE_PLUGIN_ROOT}/references/TechnicalGuide.md — Technical best practices, control selection, validation workflow, formulas, layout strategies

Read this file before planning any edits.

CRITICAL: Sync the Canvas App First

Before reading or editing any YAML files, call the sync_canvas MCP tool to ensure a local copy of the canvas app YAML is present and up to date. This pulls the current app state from the coauthoring session into local .pa.yaml files.

Only proceed after sync_canvas completes successfully.

Migration Workflow

1. Discover Available Data Sources

Call list_data_sources to enumerate all data sources connected to the current authoring session. This is the authoritative list of Dataverse tables (and other connectors) available for mapping.

After the call completes, share a discovery summary with the user:

Discovery complete. Available data sources ([N] total):

NameTypeKey Columns
[Table Name]Dataverse / SharePoint / …[column names]

For each Dataverse table identified, call get_data_source_schema to retrieve the full column list and Power Fx types. This information is required to map source columns to destination columns accurately.

2. Read the YAML Files

Read every .pa.yaml file produced by sync_canvas. For each file:

  • Identify every Power Fx formula that references a non-Dataverse data source (e.g. SharePoint.GetItems, Filter('MyList', …), Patch('MyList', …), LookUp, Collect, ClearCollect, etc.).
  • Note the source table/list name, the columns referenced, and the operation type (Filter, Patch, LookUp, Collect, etc.).

3. Build a Column Mapping Plan

Using the schemas retrieved in step 1, produce a mapping table for every data source call found:

Proposed Mapping Plan

Source ExpressionSource ColumnDataverse TableDataverse ColumnNotes
Filter('Orders List', Status = "Open")Statuscr123_orderscr123_statusType match: Text

Rules for column selection:

  • Prefer an exact name match (case-insensitive).
  • Fall back to a semantic name match (e.g. Titlecr123_name).
  • Flag any column with no clear match as ⚠ needs manual review.
  • Respect Power Fx type compatibility — do not map a Text column to a Choices column without an explicit conversion formula.

Present the plan to the user and ask for approval before making any changes:

Does this mapping plan look correct?

  • Approve and apply changes
  • I'd like to adjust the mapping first

If adjustments are requested, update the mapping plan accordingly and re-present.

4. Apply the Replacements

Once the plan is approved, update every affected .pa.yaml file:

  • Replace each source data-call expression with the equivalent Dataverse Power Fx expression using the approved column mapping.
  • Keep all UI properties, layout, and non-data formulas unchanged.
  • Follow the formula conventions in ${CLAUDE_PLUGIN_ROOT}/references/TechnicalGuide.md (use = prefix, wrap multi-line formulas correctly, etc.).
  • Preserve OnVisible initialization patterns — replace collection sources but keep the collection/variable structure if it exists.

Announce progress for each file:

Updating [filename].pa.yaml ([N] of [Total])…

5. Validate

Call compile_canvas after updating all files. Fix any compilation errors before finishing. Report the result:

  • On success: > Compilation successful — all replacements are valid.
  • On failure: > [N] error(s) found — fixing before finishing. [brief description of each error]

Repeat validate → fix until all files compile clean.

6. Complete

When all files pass validation, present a final summary:

Migration complete.

FileExpressions ReplacedStatus
[filename].pa.yaml[N]Compiled

Source replaced: [original data source names] Target: [Dataverse table names used] Columns requiring manual review: [list any ⚠ flagged columns, or "none"]

microsoftのその他のスキル

oss-growth
microsoft
OSS成長ハッカーのペルソナ
agent-framework-azure-ai-py
microsoft
Microsoft Agent Framework Python SDK(agent-framework-azure-ai)を使用してAzure AI Foundryエージェントを構築します。AzureAIAgentsProviderを使用した永続的なエージェントの作成、ホスト型ツール(コードインタープリター、ファイル検索、ウェブ検索)の使用、MCPサーバーの統合、会話スレッドの管理、ストリーミング応答の実装時に使用します。関数ツール、構造化出力、マルチツールエージェントをカバーします。
development
airunway-aks-setup
microsoft
AKS上でAI Runwayをセットアップ — ベアクラスターからモデル実行まで。クラスター検証、コントローラーインストール、GPU評価、プロバイダー設定、初回デプロイをカバー。対象: 「AI Runwayのセットアップ」「AKSクラスターのオンボード」「AI Runwayのインストール」「airunway setup」「AKSへのモデルデプロイ」「AKSでのGPU推論」「AKSでのKAITOセットアップ」「AKSでのLLM実行」「AKSでのvLLM」「AKSでのモデルサービング設定」「AI Runwayコントローラー」。
devops
appinsights-instrumentation
microsoft
Azure Application Insightsを使用したWebアプリのインストルメンテーションに関するガイダンス。テレメトリパターン、SDKセットアップ、構成リファレンスを提供します。対象: アプリのインストルメンテーション方法、App Insights SDK、テレメトリパターン、App Insightsとは何か、Application Insightsガイダンス、インストルメンテーション例、APMベストプラクティス。
devops
applicationinsights-web-ts
microsoft
Application Insights JavaScript SDK(@microsoft/applicationinsights-web)を使用してブラウザ/Webアプリを計測します。Real User Monitoring(RUM)— ページビュー、クリック、AJAX/fetch依存関係、例外、カスタムイベント、およびバックエンドのOpenTelemetryトレースに関連付けられたブラウザ側のGenAIエージェントトレースに使用します。SDKローダースクリプトとnpmセットアップ、フレームワーク拡張機能(React、React Native、Angular)、Click Analytics、テレメトリ初期化子、およびブラウザから生成されるエージェント/ツール/モデルスパンのOTel GenAIセマンティック規約をカバーします。
devops
azure-ai-anomalydetector-java
microsoft
Azure AI Anomaly Detector SDK for Javaを使用して異常検出アプリケーションを構築します。単変量/多変量異常検出、時系列分析、またはAIを活用したモニタリングを実装する際に使用します。
development
azure-ai-language-conversations-py
microsoft
azure-ai-language-conversations Python SDKを使用して会話言語理解(CLU)を実装します。ConversationAnalysisClientを使用して会話の意図とエンティティを分析する場合、NLP機能を構築する場合、またはアプリケーションに言語理解を統合する場合に使用します。
development
azure-ai-ml-py
microsoft
Azure Machine Learning SDK v2 for Python。MLワークスペース、ジョブ、モデル、データセット、コンピュート、パイプラインに使用します。 トリガー: 「azure-ai-ml」、「MLClient」、「ワークスペース」、「モデルレジストリ」、「トレーニングジョブ」、「データセット」。
development