LoginSignup
1
0

More than 1 year has passed since last update.

MacでMicrosoft Power Platform CLIを使用して Dynamics 365で用意したソリューションからプラン情報を追加したソリューションコンポーネントを作成する

Posted at

はじめに

当記事は、Microsoft AppSourceDynamics 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の下部にターミナルが表示されると思います。以下の作業は、このターミナルで実施して下さい。

vscode_terminal.png

ソリューションを追加する環境の認証プロファイルの作成

大雑把に言うとMicrosoft ログインです。

Dynamics365のkobunhada組織にログインする場合
pac auth create --name myprofile --url https://kobunhada.crm7.dynamics.com/

--nameオプションは12文字以内の任意の名前で良いと思います。

Microsoftログイン画面が表示されるので、それ経由でログインします。

aad.png

公式ドキュメント通りに --kindオプションや--username,--passwardオプションを指定すると、色々とエラーが出てきます。

どうしてもコマンドのみで行きたい場合は、以下を参考に色々と試してみて下さい。

pacコマンドの使用方法
使用法: 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

Dynamics365のkobunhada組織のアンマネージドソリューションKOBUN_HADAを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が改悪されないことを祈るばかりです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0