MacでMicrosoft Power Platform CLIを使用して Dynamics 365で用意したソリューションからプラン情報を追加したソリューションコンポーネントを作成する
はじめに
当記事は、Microsoft AppSourceに Dynamics 365用のアプリを公開する際に必要となるDynamics 365ソリューションコンポーネントをMicrosoft Power Platform CLIを使用して作成することを目的としています。
ただ、Dynamics 365自体にソリューションのエクスポートするだけなら組織のサイトを開いて
設定(右にある歯車のアイコン) -> 詳細設定 -> 設定プルダウンメニュー ->ソリューション
で、ソリューション一覧画面を表示して、「パッケージの種類 = アンマネージド」を選択し、同画面のエクスポートでエクスポートの種類に「マネージド」を選択してエクスポートすれば、立派なマネージドソリューションコンポーネント(以降はソリューションと記す)が出来上がります。
しかしながら、上記方法でエクスポートしたソリューションの場合、ソリューションにライセンス情報を追加することが出来ない(多分ね)訳です。
前置きが長くなりましたが、当記事では、Microsoft Power Platform CLIを使用してライセンス情報を付加したソリューションを作成するための方法を紹介します。
ソリューションについて
ソリューションにはアンマネージドとマネージドの2種類が存在します。
- アンマネージドソリューション・・・組織にインポートした後にソリューションをカスタマイズできない(開発用)
- マネージドソリューション・・・組織にインポートした後にその組織でソリューションをカスタマイズできる(リリース用)
公式ドキュメントソリューションの概念にそれぞれのソリューションについて説明されています。(日本語ドキュメントの文中では、"マネージド" "管理"と翻訳されていますのでご注意を)
また、マネージドソリューションは、カスタマイズ出来ないので、当然、マネージドソリューションをcloneしてプラン情報の追加はできません。
事前準備
Microsoft Power Platform CLI環境を用意する
Microsoftの公式ドキュメント「Microsoft Power Platform CLI とは」を読んでみると、環境構築ための選択肢が用意されていますがMacだと、VSCodeにPower Platform VS Code 機能拡張をインストールするしかない様です(2021/09/11現在)
と、言う訳で、Microsoft Power Platform CLI とはにVSCode + Power Platform VS Code 機能拡張環境で進める事とします。
尚、環境構築方法は「Microsoft Power Platform CLI とは」に掲載されていますので、そちらを参照して下さい。
作業ディレクトリの準備
作業をするためのディレクトリを準備して下さい。
当記事では
/Users/kobunhada/dynamics/
を作業ディレクトリとして説明していきます。
プラン情報をソリューションに追加ための準備
付録: ソリューションにライセンス情報を追加するのライセンス ファイルを作成するを参照して、以下のファイル(csvファイル)を用意しておきましょう
- プラン定義ファイル: Microsoftパートナーセンターで作成したオファープランの詳細を定義する
- プラン マッピング ファイル: それらのプランをソリューションのコンポーネントにマッピングする
例として以下の名前のCSVファイルを定義したとします。
-
ISV_Plan_Definition_CSV.csv
はプラン定義ファイル -
ISV_Plan_Mapping_CSV.csv
はプランマッピングファイル
この2ファイルを/Users/kobunhada/dynamics
に配置しておきます。
Microsoft Power Platform CLIを使う
以降の作業は、VSCode上で実行します。念の為、VSCodeでターミナルを表示する方法を紹介します。
VSCodeの"Terminal"メニューから"New Terminal"を選択して下さい。VSCodeの下部にターミナルが表示されると思います。以下の作業は、このターミナルで実施して下さい。
ソリューションを追加する環境の認証プロファイルの作成
大雑把に言うとMicrosoft ログインです。
pac auth create --name myprofile --url https://kobunhada.crm7.dynamics.com/
--name
オプションは12文字以内の任意の名前で良いと思います。
Microsoftログイン画面が表示されるので、それ経由でログインします。
公式ドキュメント通りに --kind
オプションや--username
,--passward
オプションを指定すると、色々とエラーが出てきます。
どうしてもコマンドのみで行きたい場合は、以下を参考に色々と試してみて下さい。
使用法: pac auth create [--name] [--kind] [--url] [--username] [--password] [--applicationId] [--clientSecret] [--tenant] [--cloud]
--name この認証プロファイルに指定する名前 (最大12文字) (エイリアス: -n)
--kind 作成する認証プロファイルの種類です。既定値は Dataverse です (エイリアス: -k)
--url 接続先のリソース URL (エイリアス: -u)
--username 任意: 認証に使用するユーザー名。指定しない場合は AAD ダイアログを表示します (エイリアス: -un)
--password 任意: 認証に使用するパスワード (エイリアス: -p)
--applicationId オプション: 認証に使用するアプリケーション ID (エイリアス: -id)
--clientSecret オプション: 認証に使用するクライアント シークレット (エイリアス: -cs)
--tenant アプリケーション ID とシークレットを使用している場合のテナント ID です。 (エイリアス: -t)
--cloud オプション: 認証に使用するクラウド インスタンス (エイリアス: -ci)
値: Public, Tip1, Tip2, UsGov, UsGovHigh, UsGovDod
ソリューションプロジェクトをclone
pac solution clone --name KOBUN_HADA --outputDirectory /Users/kobunhada/dynamics
マネージドソリューションはclone出来ないので注意して下さい
ソリューションプロジェクトにプラン情報をソリューションに追加する
pac solution add-license -pd /Users/kobunhada/dynamics/ISV_Plan_Definition_CSV.csv -pm /Users/kobunhada/dynamics/ISV_Plan_Mapping_CSV.csv
プロジェクトルートへ移動する
cd /Users/kobunhada/dynamics/KOBUN_HADA
ソリューションをBuildする
アンマネージドソリューションをBuildする
msbuild /t:build /restore
マネージドソリューションをBuildする
msbuild "KOBUN_HADA.cdsproj" /t:build /p:configuration=Release /restore
Buildしたソリューションファイルの出力先
-
プロジェクトroot/bin/Debug
アンマネージドファイル -
プロジェクトroot/bin/Release
マネージドファイル
以上です。
おわりに
今の会社に入ってから Dynamics 365 の存在を初めて知った(Salesforceは名前だけは知っていたけどCRMやSFA、とはご縁のない人生を歩んで来ました)のですが、CRM業界では、Salesforceに遅れを取っている様です。
但し、つい最近、SalesforceがSlackを買収したことから、MicrosoftはDynamics 365に本腰を入れてシェアを奪いに行くつもりなのかなぁ、と。
これから Salesforce + Slack vs Dynamics + Teams の熾烈なバトルが展開されるのでしょうか・・・しらんけど。
個人的には Slackが改悪されないことを祈るばかりです。
Author And Source
この問題について(MacでMicrosoft Power Platform CLIを使用して Dynamics 365で用意したソリューションからプラン情報を追加したソリューションコンポーネントを作成する), 我々は、より多くの情報をここで見つけました https://qiita.com/kobunhada/items/a4e1a6387f9b3eecd892著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .