Japan Dynamics CRM Team Blog

Microsoft Dynamics CRM technical information for partners and customers

Dynamics CRM 2013/Fall '13 コマンドバーのカスタマイズ その 2

Dynamics CRM 2013/Fall '13 コマンドバーのカスタマイズ その 2

  • Comments 2

みなさん、こんにちは。

前回に引き続き、コマンドバーのカスタマイズを紹介します。今回は
具体的にカスタマイズを実施していきますが、以下の手順は前回記事
の手順の続きになります。

前回の記事はこちら

シナリオ

取引先企業エンティティのグリッドからのみ、高度な検索ボタンを
非表示にします。ただし高度な検索の権限は剥奪しません。

image

Customizations.xml を開く

コマンドバーのカスタマイズを行うにあたり、Visual Studio で保存した
Customizations.xml を開きます。

1. Visual Studio を起動します。

2. ファイル | 開くより解凍した Customizations.xml を開きます。

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

4. 追加より前回追加したスキーマを探し以下を選択します。

CustomizationsSolution.xsd
RibbonCore.xsd
RibbonTypes.xsd
RibbonWSS.xsd

5. OK をクリックします。

6. Entities | Entity | RibbonDiffXml ノードを探します。

7. CutomActions ノードを以下のように変更します。

<CustomActions></CustomActions>

8. CustomActions 内に要素を追加するために改行し、続いて [<]
を入力した際、以下のように Intellisense が動作すればスキーマが
正常に読み込まれています。

image

RibbonDiffXml の構成

コマンドバーのカスタマイズは、RibbonDiffXml を編集する事で
実行します。RibbonDiffXml 内には、以下の要素が存在します。

- CustomActions
- Templates
- CommandDefinitions
- RuleDefinitions
- LocLabels

それぞれの要素の使い方はこれからの記事で紹介していきます。

既存のボタンを非表示にする

早速今回のシナリオを満たすようにカスタマイズします。カスタム
ボタンの追加や既存のボタンの非表示を行うには、CustomAction を
追加します。

1. CustomActions ノードを改行して、HideCustomAction を追加します。

2. ID に一意となる値を指定します。他のソリューションと重ならない
ように、例えば以下のようなルールで ID を追加します。

<独自サフィックス>.HideCustomAction.<隠す要素の ID >

3. Location に隠したい要素の ID を指定します。今回は高度な検索を
隠すので以下の様に指定します。ID の確認方法は後ほど紹介します。  

image

4. 変更を保存します。

5. ダウンロードした zip ファイル内の Customizations.xml を、保存
したファイルで上書きします。

6. ブラウザに戻り、設定のカスタマイズ | ソリューションより、
変更したソリューションのインポートを実行します。

7. ソリューションのインポート完了後、すべてのカスタマイズを
公開し、ブラウザをリフレッシュします。

8. 取引先企業を表示し、グリッドのコマンドバーから高度な検索
ボタンが消えていることを確認します。

image

既存ボタンの ID 確認方法

既存コマンドバーの情報は、SDK の以下のフォルダに存在します。

SDK\Resources\ExportedRibbonXml

取引先企業のグリッドコマンドバーに表示される高度な検索の ID
は以下の手順で確認が可能です。

1. 上記パスにある accountRibbon.xml を Visual Studio で開きます。

2. RibbonDefinitions | RibbonDefinition | UI | Ribbon | Tabs 配下にある
Tab ノードを順番に確認します。Tab の ID 名は以下のように構成
されています。

Mscrm.<グリッドまたはフォーム※>.<エンティティ名> .<タブ名>
※グリッドの場合は HomepageGrid、フォームの場合は Form
例) Mscrm.HomepageGrid.account.MainTab は取引先企業エンティティ
のグリッドでメインタブであることを示しています。

3. タブの子要素として Group があります。Group の ID もタブと
同じ命名規則です。またその子要素として Controls、その子要素
としてボタンやスプリットボタンなどが存在します。

4. 検索で advancedfind の文字列を検索します。見つかったものが
Mscrm.HomepageGrid.account のものであるか確認します。

image

5. 上記の要素は探しているエンティティ (Account) と場所 (Grid) に
一致するため目的の ID であると当たりをつけて利用します。

追加のシナリオ

追加のシナリオとして、取引先企業フォームにある削除ボタンを
非表示にしてみます。

image

1. 上記手順で開いた accountRibbon.xml で delete を検索します。

image

2. 上記の検索結果は、その名前よりグリッドのものであるため、
続いて検索を行い、フォームの削除ボタンの ID を特定します。

image

3. Customizations.xml に以下の HideCustomAction を追加します。

image

4. 先ほどと同じ手順でソリューションを上書きします。

5. ソリューションのインポート後、すべてのカスタマイズを
公開して、ブラウザをリフレッシュします。ボタンが非表示
となることを確認します。

image

非表示にしたボタンを再表示

上記手順で非表示にしたボタンを再度表示したい場合、設定
を削除した Customizations.xml に差し替えることで元に戻す
ことが可能です。

1. 例えばフォームコマンドバーから���表示にした削除ボタンを
再度表示するが、高度な検索を非表示にしておく場合、以下の
内容に書き換えます。

image

2. すべてを戻す場合、以下のように書き換えます。

image

3. 変更を保存して、ソリューションを上書きし、インポート
終了後すべてのカスタマイズを公開します。

注意点

ボタンを非表示にする場合、まず初めに権限をはく奪することで
実現可能か検討してください。なにかしらの理由で権限はそのまま
にしておき、ボタンだけ非表示にしたい場合は、今回の手法が
利用できます。

次回はカスタムボタンの追加を紹介します。

‐ 中村 憲一郎

  • Loading...
Leave a Comment
  • Please add 8 and 2 and type the answer here:
  • Post