Dynamics CRM 2011 リボンのカスタマイズ パート 1


みなさん、こんにちは。

今回から Dynamics CRM 2011 で採用されたリボン UI のカスタマイズを
複数回にわたってお届けします。パート 1 の今回はリボンカスタマイズの
概要と参考情報です。

リボン UI

リボンとは Microsoft Office 2007 で採用された新しい UI であり、現在多くの
製品で利用されています。Dynamics CRM 2011 では多くの場所でリボンを
採用しています。SDK の Ribbons Available in Microsoft Dynamics CRM に
詳細な記載がありますが、主なリボンの場所は以下の通りです。

– 各エンティティのグリッド
– 各エンティティのフォーム
– 各エンティティのサブグリッド
– 設定等、独自のリボンを持たないメニューには共通のリボン
– Outlook クライアント
– フォームエディター等、各種カスタマイズ画面

image

リボンの構成

リボンは以下の要素から構成されています。

– タブ
上記の画像では、取引先企業、ビュー、グラフ、追加、カスタマイズがタブに該当します。

– グループ
タブ内では、複数のグループを作成できます。上記の画像ではレコード、共同作業が
該当し、各グループは縦線 (スプリッタ) で分けられます。

– コントロール
グループ内には、ボタンのようなコントロールを配置できます。上記の画像では、新規、
編集、アクティブ化等が該当します。

リボンの機能

リボンには、以下の機能があります。

– 自由なレイアウト
既存のタブ、グループ、コントロールを隠したり、カスタムタブ、グループ、コントロールを
任意の場所に配置することが可能です。

– 柔軟な表示設定
各コントロールは、表示/非表示、また有効化/無効化が、柔軟な条件で切替えれます。
例えば、1 つのレコードを選択している場合にのみ有効化や、特定の権限を確認して
表示するといったことが可能です。

– スケーリング
リボンの表示領域が狭くなった場合に、自動でアイコンのリサイズや、メニュー構成の
変更を行うことが可能です。

[元の状態]
image

[領域が狭くなった場合]
image

– 動的な切り替え
現在選択している内容によって、動的にリボンが切り替わります。例えば、ある
フォーム上でサブグリッドを選択すると、サブグリッド用のリボンになります。

リボンのカスタマイズ

リボンのカスタマイズは、UI では行えません。一旦ソリューションの一部
としてエクスポートしてから XML を編集し、再度インポートします。

以下にリボンカスタマイズの準備手順を紹介します。

リボンのエクスポート

まずはソリューションの一部として、リボンをエクスポートします。
カスタマイズする場所にあわせて、リボンは 2 箇所から選択します。

– 各エンティティのリボンをカスタマイズする場合は、該当エンティティを選択
– その他の場所のリボンをカスタマイズする場合は、クライアント拡張を選択

1. 設定 | カスタマイズ | ソリューションより、以下の内容で新規の
ソリューションを作成します。

image

2. 保存をクリックして、ソリューションを保存します。

3. 今回は取引先企業のリボンと、その他の場所のリボンをカスタマイズします。
まずエンティティを選択して、既存の追加をクリックします。

4. 取引先企業を選択して OK をクリックします。

5. 必須コンポーネントは含めませんを選択して、OK をクリックします。

6. クライアント拡張を選択して、既存の追加をクリックします。

7. アプリケーションリボンを選択します。

8. ソリューションを保存してから、エクスポートします。

9. 不足しているコンポーネントは無視して、次へをクリックします。

10. パッケージの種類の画面では、マネージドを選択します。マネージドを選択
することで、変更を加えた内容を、後から容易に削除可能になります。

11. 任意の場所に保存します。圧縮フォルダが作成されます。

12. 保存した圧縮フォルダを開いて、customization.xml を任意の場所へ
コピーします。これでリボンの保存は完了です。

リボンを開く

リボンは customization.xml に含まれています。XML エディターやメモ帳
等、使い慣れたツールで編集が可能ですが、ここでは Visual Studio 2010
を利用して開きます。

1. リボンの編集を容易にするため、スキーマファイルを利用します。
sdk\schemas フォルダ配下の xsd ファイルを、Visual Studio 2010 の
インストールフォルダ\Xml\Schemas 配下にコピーします。

2. Visual Studio 2010 を開きます。

3. メニューバーより ファイル | 開く | ファイルメニューをクリックして、
customization.xml を指定して開きます。

4. メニューバーより XML | スキーマ をクリックします。

5. customizationssolution.xsd の使用欄で、このスキーマを使用する
を選択して、OK をクリックします。

image

6. ためしにスキーマが有効になっているか、RibbonDiffXml ノード
の後ろで改行して、 < を入力してみます。以下のように候補が出れば
スキーマが正しく有効になっています。

image

RibbonDiffXml の構成

Dynamics CRM 2011 は、既定のリボン情報を全て公開しています。既定の
リボンは sdk\samplecode\cs\client\ribbon\exportribbonxml\exportedribbonxml
フォルダに保存されています。

この既定のリボンに対して、RibbonDiffXml の内容が統合され、最終的な
リボンが構築されます。

エンティティのリボンは各エンティティの定義内に、その他は ImportExportXml
直下に存在します。また RibbonDiffXml 配下は以下の項目が存在します。

– CustomActions
– Templates
– CommandDefinitions
– RuleDefinitions
– LocLabels

次回からは、これらの要素の説明と、具体的なサンプルを紹介します。

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

Comments (2)

  1. Outlookクライアントの予定画面のリボンについて より:

    お世話になります。

    OutlookクライアントのOutlookの予定画面上に現れるCRMのリボンについてXMLで編集後ソリューションとして対応はできますでしょうか?

    リボンのカスタマイズパート1~5を拝見させて頂き、Visual Ribbon EditorやRibbon WorkbenchでもIDすらなかったので、手間ですが各マシンでOutlook上でのリボンの設定で変更するしかないかとあきらめかけてます。

    対応方法ありなしのみでかまいませんので、教えて頂けますと幸いです。

    よろしくお願いします。

  2. コメントありがとうございます。

    通常エンティティのリボン以外のカスタマイズについては、すべてアプリケーションリボンにて

    変更が可能となっております。アプリケーションリボンのカスタマイズは Microsoft Dynamics

    CRM 2013 の記事ではありますが、以下をご参照ください。

    blogs.msdn.com/…/dynamics-crm-2013-fall-13-customize-command-bar-5.aspx

    アプリケーションリボンの Mscrm.Outlook14GlobalToolbar をご参照いただき、該当する項目が

    あるかご覧いただけますでしょうか。また結果をコメントいただければ幸いです。

    中村 憲一郎

Skip to main content