2022 年 5月 26日、Microsoft グローバルの公式イベントの『Microsoft Ignite 2022』で
セッション『Learn Live: 開発者ツールを使用して Microsoft Power Platform を拡張する』をデリバーさせていただくことになりました。
そのセッション内でたくさんのページや資料を紹介しているので、それらをこの記事にまとめました。
概要
Code-first developers (コードを書く開発者) と Citizen developer (市民開発者) の方々が
協業する (work well together) ためにある、
開発者向けのツールとして
Power Platform CLI (コマンド ライン インターフェイス) を紹介します
(こちら Power Platform チームの公式 YouTube で詳しい説明が聞けます (英語) 『Command Line Interface for Power Platform - Power CAT Live』)
該当セッションページ
『Learn Live: 開発者ツールを使用して Microsoft Power Platform を拡張する (delivered in Japanese)』
スピーカー (登壇者)
該当 Learn モジュール
『開発者ツールを使用して Microsoft Power Platform を拡張する』
チュートリアル形式なので、セッションでは (補足説明に加えて) これをランスルーしていく形になります。
M365 デベロッパーセンター
無料で開発権限のあるテナントをゲット
『Microsoft 365 デベロッパーセンター』
Microsoft Azure 無料トライアル
セッションの流れ
- Dataverse のデータを使った Canvas App デモ
- Dataverse とビジネスロジック 紹介
- ビジネスロジックを PlugIn で作る
- PlugIn の登録
- ソリューション~SolutionPackager~PackageDeployer
- PCF によるコンポーネントの作成
それぞれの項目での該当ドキュメントのリンクをご案内します
1. Dataverse (データバース) のデータを使った Canvas App デモ
2. Dataverse とビジネスロジック 紹介
3. ビジネスロジックを PlugIn で作る
4. PlugIn の登録
5. ソリューション~SolutionPackager~PackageDeployer
6. PCF によるコンポーネントの作成
モジュールの PowerShell スクリプトのエラーについて
『演習 - 開発者ツールのインストールと使用』の
PowerShell スクリプトを使用して NuGet のツールをインストールするところですが、
こちらコマンドに一部不備があり叩くとコケます。
その原因とワークアラウンドをこちらに載せます
原因
↓ 該当部分の例
$prtFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match 'Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool.'}
move .\Tools\$prtFolder\tools\*.* .\Tools\PluginRegistration
ここの Get-ChildItem
が フルパスを返すので
$prtFolder
にもフルパスが入ります。
なので次の move
コマンドのパス指定 .\Tools\$prtFolder\tools\*.*
でコケます😢
ここのコマンド群は全部そんな感じなので
ごっそり入れ替える必要があります
(モジュール author にはフィードバック済み、修正待ち)
ワークアラウンド
パス指定をよしなにしたものがこちらです
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$sourceNugetExe = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
$targetNugetExe = ".\nuget.exe"
Remove-Item .\Tools -Force -Recurse -ErrorAction Ignore
Invoke-WebRequest $sourceNugetExe -OutFile $targetNugetExe
Set-Alias nuget $targetNugetExe -Scope Global -Verbose
##
##Download Plugin Registration Tool
##
./nuget install Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool -O .\Tools
md .\Tools\PluginRegistration
$prtFolder = Get-ChildItem ./Tools -Name | Where-Object {$_ -match 'Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool.'}
move .\Tools\$prtFolder\tools\*.* .\Tools\PluginRegistration
Remove-Item .\Tools\$prtFolder -Force -Recurse
##
##Download CoreTools
##
./nuget install Microsoft.CrmSdk.CoreTools -O .\Tools
md .\Tools\CoreTools
$coreToolsFolder = Get-ChildItem ./Tools -Name | Where-Object {$_ -match 'Microsoft.CrmSdk.CoreTools.'}
move .\Tools\$coreToolsFolder\content\bin\coretools\*.* .\Tools\CoreTools
Remove-Item .\Tools\$coreToolsFolder -Force -Recurse
##
##Download Configuration Migration
##
./nuget install Microsoft.CrmSdk.XrmTooling.ConfigurationMigration.Wpf -O .\Tools
md .\Tools\ConfigurationMigration
$configMigFolder = Get-ChildItem ./Tools -Name | Where-Object {$_ -match 'Microsoft.CrmSdk.XrmTooling.ConfigurationMigration.Wpf.'}
move .\Tools\$configMigFolder\tools\*.* .\Tools\ConfigurationMigration
Remove-Item .\Tools\$configMigFolder -Force -Recurse
##
##Download Package Deployer
##
./nuget install Microsoft.CrmSdk.XrmTooling.PackageDeployment.WPF -O .\Tools
md .\Tools\PackageDeployment
$pdFolder = Get-ChildItem ./Tools -Name | Where-Object {$_ -match 'Microsoft.CrmSdk.XrmTooling.PackageDeployment.Wpf.'}
move .\Tools\$pdFolder\tools\*.* .\Tools\PackageDeployment
Remove-Item .\Tools\$pdFolder -Force -Recurse
##
##Remove NuGet.exe
##
Remove-Item nuget.exe
参考