Udemy コースのラーニングパス

基本的に Power Apps ポータルなどのGUIを使わずに GitHub Copilot で Copilot Studio と Power Apps (Code Apps)、Dataverse を開発する方法

GitHub Copilot や Claude Code の登場で、コードベースでの開発のほうがローコード開発よりも効率が良くなってきました。

思いつくだけでも、例えば以下のような観点がGitHub Copilot からの開発のメリットとしてあげられます。

  • 設計から開発、テスト、運用まで一気通貫
  • UI上での設定ミスを防止
  • 複雑な処理のワークフロー (Skill) 化による反復処理
  • ドキュメントのコードからの作成
  • Git でのバージョン管理
  • エージェントによるバックグラウンドでの処理

だったらデプロイ先をAzureにしてもいいんじゃ無いの?ということに対しては、それも良いけど、SaaSとして提供できるのでインフラ・セキュリティ基盤を活用できるメリットがあります。

今回は Copilot Studio エージェント、 Power Apps Code Apps 、 Dataverse テーブルを設計から開発まで一気通貫に行います。

長い記事ですが、記事の最後には課題を解消するカスタムエージェントYAMLや Code Apps 開発標準のアップデートも紹介しておりますのでぜひ最後までご覧ください。

VS Code での環境準備

@agentPlugin と検索することで プラグインを確認できます。その中でも以下のプラグインをインストールします。

github/awesome-copilot: Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.

Code Apps

こちらは Code Apps を開発する際のスキルが入っています。

Complete toolkit for Power Apps Code Apps development including project scaffolding, development standards, and expert guidance for building code-first applications with Power Platform integration.

Copilot Studio

Copilot Studio 向けのプラグインです。

Microsoft Copilot Studio plugins for AI coding agents

Dataverse

Dataverse 向けのプラグインです。

Build and manage Microsoft Dataverse solutions using natural language. Includes table/column creation, solution lifecycle, data operations, and MCP server configuration.

インストールが完了したら、拡張機能再起動します。

プラグインが提供するスキルを利用した VS Code での開発

Dataverse

Dataverse テーブルの設計をしてもらいます。今回はインシデント管理テーブルを作成してみます。このようなプロンプトで依頼します。

IT資産の内部からの問い合わせを受け付けて、障害対応するインシデント管理テーブルを作成してほしいです。まずは設計してください。

いきなり開発は行わせず、設計のみさせます。修正希望があれば追加で依頼します。

すぐに関連するスキルを読み込みました。

読み込んだかと思ったら、直ちに非常に詳細にテーブルを設計してくれました。

選択肢の列定義もDataverseのことをよくわかっています。

設計の考え方まで共有してくれます。安心感があります。

追加で関連テーブルを設計するように依頼しました。

IT資産は別テーブルにして、関連付けるようにして。

追加テーブルとリレーションシップの設計も問題なく実施してくれました。

現在の利用者は既存のユーザーテーブルを参照してほしいので、それについても依頼してみます。

  • あえて部署については何も言わずにユーザーテーブル側で管理してくれるか
  • ユーザーテーブルと言うだけで既存テーブルを見つけてくれるか

このあたりを検証します。

現時点ちょっと惜しく、Dataverseにある既定のユーザーテーブルであるSystemUser テーブルは認識してくれましたが、部署についてはその中に含めてくれませんでした。こちらは現時点ではDataverseのテーブル構造について利用者が理解して指示する必要があります。

というわけでこのように指示してみました。

部署はUserテーブルに含んでいるため、設計を更新して

Dataverse の基本はよく理解しています。

納得行くテーブルを設計することができたため、こちらで作成してもらいます。

自然な言い回して作成してもらいます。

この内容でテーブルを作成して

テーブルを作成する先の環境をAsk user 形式で提供してくれました。

設計から相談に乗ってくれて、複数の新規テーブル、既存テーブル含めてテーブル作成を行ってくれるのは非常に便利です。画面上で一つずつ列を作成したり、Excel から流し込むよりはずっと楽です。

ビジネス要件に集中できているという自信を感じます。

認証を求められます。デバイスコードでの認証でした。環境にアクセスできるアカウントで実行します。

認証が完了したら次の操作が続きます。

パブリッシャープレフィックスを確認するPythonが実行されます。

動きをよく見ていると、様々な操作をPythonで実行しています。

すきなパブリッシャーを選択することができます。こちらも Ask user 形式で聞いてきます。とても親切ですね。

複雑な操作ですが、用途ごとにSDKとWeb APIを使い分けるようです。

ここまでの複雑な操作を自分で実行しようとしたら躓きやすいでしょう。スキルとして提供されている価値がここにあると思います。

今後AIエージェントのための技術が提供されたら、より簡単にオーバーヘッドも少なく実行できるようになるでしょう。

5分ほど時間がかかりましたが、2つのテーブルの作成が完了しました。

実際に Power Apps ポータルを見てみるとテーブルが存在しています。

ER図を作成して と言って作成してもらいます。

次にデモデータを作成してもらいます。デモデータは動きを確認するのに必要です。通常、これを準備するのは結構大変 & かつ複数のテーブルに登録するのは面倒でしたが何にも文句を言わずに進めてくれます。

もうAIなしには戻れません。

既存ユーザーの情報を確認して作成する動きを取ります。非常に賢いです。

特に指示していませんでしたが、日本語でデモデータが作成されています。

列は日本語の表示名にしてもらいたいので追加で依頼します。

日本語にして、というのは簡単ですが手動でやるとなったらこれは非常に大変な作業です。

スクリプトを作成して連続的に実行してくれています。

表示名を変更できる列は日本語に変更してくれました。

指示していませんでしたが、テーブル名も日本語化してくれています。

こちらで Dataverse は完成とします。

Copilot Studio

Copilot Studio のスキルはエージェントの新規作成に対応していないので、編集用に事前にポータルにて手動で作成しておくかDataverse APIにて作成する必要があります。

今回はVS Code からすべての操作を実行したいため、Dataverse API経由で作成してもらいます。新しいエージェント「IT資産管理エージェント」を作成してもらいます。

面白い動きになりました。スキルの有無を特に言わなくても自然に理解して Dataverse API 経由で作成する判断を GitHub Copilot 自身が行いました。

新しいエージェントのデプロイが完了しました。

トピックのカスタマイズ

トピックで使わないものは削除してもらいます。自然言語でまとめて指示できるのはとてもありがたいです。

自然なやり取りで変更することができました。

この状態ではまだエージェントの定義情報はローカルに存在しており、クラウドにパブリッシュされているのは最初に公開されたバージョンです。

ただしVS Code にはコードが存在しています。

ここまでの内容を一度クラウドに再度デプロイしてもらい、 Copilot Studio が動作するか確かめたいと思います。

一度プルしてからプッシュする動きを取ります。

エラーを検出し、自己修復しています。

エージェントがデプロイされていることがわかります。

アイコンは懐かしのアイコンが使われています。利用しないトピックは削除されてデプロイされていました。

ナレッジとツール

実現方法が色々と考えられる依頼をしてみます。

実装方法については特に指定しないで依頼したため、トピックを作成する方針やDataverse コネクターを優先する方針で実装方法を考えているようです。

この実装方針は指定しないと迷走しているようです。現在は 生成オーケストレーションにて Dataverse MCP Server を利用するのが最も良い方法 (と私は思っている) なのに、トピックを作成して対応しようとしています。

トピックを活用して Dataverse と連携する方針で実装されました。

個人的にはしっくりこない実装方法です。おそらくですが用意されているスキルがまだ少なく、提供されているツールの中から選択されてしまっているためと思います。

内容をポータルでも確認してみます。いくつもトピックが作成されていました。

また、ナレッジにはインシデントテーブルが追加されています。

内容を確認してみましたが、エラーが発生していました。

つまり、テーブルに関してはしっかりとプロンプトで指示してあげる必要があるようです。

次に、インシデント起票のトピックを確認してみます。検索、編集、起票のトピックが作成されていますが、内容がありません。コードエディターでも開くことができません。

スキルからYAMLの生成に問題があるようです。

また、ツールにDataverseが追加されていないようです。

上記のような問題点があることから、エージェントを作成し直します。

以下のような指示を GitHub Copilot に対して行い、ここまでの設定を修正させます。

Dataverse の検索は、 作成した geek_IncidentManagement テーブルを利用する。また、Dataverse MCP Server を利用して起票などを行えるようにする。 さらに、 生成オーケストレーションを活かすため、トピックはカスタムで利用しない。

実行結果を見ると、 Copilot Studio に Dataverse MCP Server は自動て追加できないとあります。手動での追加方法が案内されました。

しょうがないので手動で追加します。

2026/04/06 時点の限界のようです。

更新したことを VS Code で伝えると、 Pull して 最新情報を取得して Push > Publish に進みます。

続けて、ナレッジの Dataverse テーブルも正しいテーブルに更新するように指示します。あえてスキーマ名を指示に入れず、どこまで対応できるか試してみます。

するとAsk user してきて確かめてきました。

それでもナレッジには上手に追加されませんでした。

GitHub Copilot も諦めてしまったので、手動で ナレッジを追加します。

正しく公開されました。結果をポータルで確認すると Dataverse MCP Server 向けに指示が最適化されていることがわかります。

続けて、エージェントのアイコンを作成して登録させました。

ポータルで確認するとアイコンが作成されて登録されていました。

Powe Apps Code Apps

アプリの作成を進めます。今度は VS Code でCode Apps でインシデント管理アプリを作成するように指示します。ここでも指示は最低限のとし、デザイン等もランダム (指示を行わない) でプラグインの動作を理解するのを優先し進めてみます。

待っているとひたすら開発してくれています。一度でとんでもない量を開発します。

これを10分で開発するのですからAIの開発速度はとんでもないです。

次のステップとしてこれを提案されましたので続けてとだけ依頼します。

ただこの時点で、私は GitHub Copilot の処理が間違っていることに気づいています。皆さんもお気づきですよね?

アプリのURLを返してくれました。

このURLにアクセスして Power Apps が実行できるか試します (この時点で接続がおかしいようには見えていますが、そのまま実行してみます)。

アプリが実行できませんでした。F12でエラーを確認して、GitHub Copilot に依頼します。

エラー内容を伝えて Copilot に修正してもらいます。

開きました。ただまだエラーが発生しているので、修正します。ついに Dataverse の接続に関するエラーまで来たと思います。

エラーメッセージを渡しても修正してくれませんでした。 GitHub Copilot が実行しているログを見ていると、利用するコマンドが間違っていました。

誤: pac code add-data-source -t でテーブル登録 

正: pac code add-data-source -a dataverse -t でテーブル登録

この違いがありました。この点は プラグインでも実行できていなかったため、手動で以下の URL を渡して更新させました。

How to: Connect your code app to Dataverse – Power Apps | Microsoft Learn

Dataverse への接続が回復し、利用できました。

ただ、デザインがいまいちでした。このデザインは Fluent UI を利用しているようです。

そのため、自分の Code Apps Starter テンプレートの GitHub のページを指定してデザインを刷新してもらいます。

この https://github.com/geekfujiwara/CodeAppsStarter  デザインテンプレートを元にUXを刷新する。

このように指示したところ、詳細に内容を確認してデザインを更新する動きを見せました。

Code Apps Starter を利用することでデザインが刷新されました。

完成したソリューションのテスト

Copilot Studio

エージェントを実行してみると回答してくれます。

別のセッションを開始し、フィッシングに関するインシデントを確認させます。

登録されていることがわかりました。次に編集してみます。ステータスについて変更したいと言うと、アドバイスをくれます。

保留中にしておきます。

手動で設定するには選択肢型などの調整が手間がかかるのですが、Dataverse をVS Code 経由で行うと非常に簡単に設定できることがわかりました。

次は起票します。

管理自然な形式で会話ができています。

登録できました。

Power Apps Code Apps

Code Apps で確認してみるとたしかに登録されていることがわかりました。

一覧画面も利用することができます。

まとめ

ここまでの内容をまとめた CodeAppsDevelopmentStandard を作成しGitHubに公開しています。

これまでCode Apps 向けのみの開発標準でしたがすべてコードファーストで開発できるようになったため、 Power Platform 全体に広げました。

プラグインを利用した開発について、正しくガイドすればとても良いと私は評価しました。そのため、Code Apps 開発標準をこのアプローチベースに刷新しました。

現在すでにこのプラグインを利用する前提で Code Apps 開発標準を更新しましたので、すぐにこのSkills ベースでの開発にご利用いただけます。

カスタムエージェントYAML

また、ここまでの懸念点を解消しながら Power Platform を開発できる VS Code / GitHub Copilot 用のカスタムエージェントのYAML を作成しましたので、ぜひお試しください。きっとスムーズな開発を実現できるはずです。

---
name: PowerCodeAppsCopilot
description: Power Platform に精通したエンタープライズ向けエキスパート。実運用と制約を前提に、誤りのない設計と実装を支援する
argument-hint: あなたは Microsoft Power Platform に特化した エンタープライズ級の開発者・アーキテクトです。
開発標準 `https://github.com/geekfujiwara/CodeAppsDevelopmentStandard` を参考に進める。
Expand

ぜひご利用ください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Index