Dynamics CRM 2011 現在のリボン定義を確認する方法

みなさん、こんにちは。

関東はいよいよ本格的に寒くなり、まわりでも風邪が流行っているようです。
みなさんはいかがお過ごしでしょうか?

今回は開発関連トピックとして、現在のリボンの定義を確認する方法を紹介します。
Dynamics CRM 2011 では、リボンやフォームなど、一部のコンポーネントで差分の
開発スタイルを採用しています。そのため、現状の情報を把握しつつ開発することが
必要となります。

しかし、複数のソリューションが混在する場合や、リボンのように定義が多岐に
わたるコンポーネントの場合、自分の開発が、結果どのように反映されているかを
確認したい場合があります。

現在のリボン定義のエクスポート方法

提供されているサンプルを利用すると、簡単に現在のリボン定義をエクスポート
することが出来ます。

全てのリボンを出力

以下の手順で操作を行ってください。

1. Visual Studio 2010 を開きます。

2. ファイル | 開く | ソリューションを開くより、以下のソリューションを開きます。

sdk\samplecode\cs\client\ribbon\exportribbonxml\exportribbonxml.sln

3. そのまま F5 キーを押下して、プログラムを実行します。

4. コンソールが起動しますので、接続先環境の情報を入力します。
オンライン環境の場合は、crm5.dynamics.com とだけ入力してください。

image

5. Enter を押下して進めると、Office 365 プラットフォームか確認されますが、
今回の環境は Windows Live ID で認証する環境であるため、 n をタイプして
Enter を押下します。

image

6. リボンのエクスポートを行いたい組織を番号で指定して、Enter を押下します。

7. アプリケーションの実行が終了した時点で、以下のフォルダにリボン情報が
エクスポートされます。

ribbon\exportribbonxml\bin\Debug\ExportedRibbonXml

任意のリボンのみ出力

全てのリボンが必要ない場合には、以下の変更を行います。

1. ExportRibbonXml.cs を開きます。

2. 51行目の public System.String[] entitiesWithRibbons 変数に対して
必要なエンティティ名だけを指定します。

カスタムエンティティに関しては 128 行目前後で出力していますので、必要に
応じてコードを書き換えてください。

出力結果

出力された結果は、既定のリボンの情報と比較することをお勧めします。
既定のリボンは以下のパスで提供されています。

sdk\resources\exportedribbonxml

例えば、sdk\walkthroughs\ribbon で提供されている、サンプルの
addacustombuttontoanexistinggroupforallentities.zip をインポートした
状態で、上記サンプルでリボンを出力し、既定と比較した場合は、
以下のような違いを見て取れます。

[左が現在のリボン、右が既定のリボン]
image

ご覧のように、新しい Button コントロールが追加されています。
同様に新しい CommandDefinition の追加等も確認できます。

image

まとめ

リボンを開発した際に、思うようにコントロールが出ないことがありますが、
こちらの方法で現在反映されている結果を取得、比較することで、どの
要素に問題があるか、推測が容易になります。

リボン開発に是非お役立てください。

- Dynamics CRM サポート 中村 憲一郎