SitemapのXMLスキーマは結構単純なので、Dynamics CRM 4.0時代は手で修正していました。先日 Dynamics CRM 2011用のサイトマップエディタの使い方を覚える機会がありました。使ってみると結構簡単で分かりやすかったです。特に、Webリソースの指定が簡単だったのが素敵でした。今回はSitemap Editorの使用方法の覚書を記載します。

サイトマップエディタのダウンロードやドキュメントは次のURLを参照してください。

SiteMap Editor for Microsoft Dynamics CRM 2011
http://sitemapeditor.codeplex.com/
http://sitemapeditor.codeplex.com/documentation

簡単とはいいましたが、サイトマップ用のXMLに対する知識は必要です。結局XMLを作成しているので、使える要素や属性およびその意味を理解している必要があります。下記URLやSDKのヘルプを参照してください。

Site Map XML Reference
http://msdn.microsoft.com/ja-jp/library/gg334430.aspx

たまに異常終了するときがあります。Sitemap Editor を再起動したり、Dynamics CRM に接続しなおしたりすると何事もなく動作したりするのでエラーが発生した場合は試してみてください。

1. 使い方

冒頭で紹介した codeplex のページから、ファイルをダウンロードします。次のコンポーネントが必要なので、必要に応じてインストールしてください。検索するとダウンロードのページを見つけることができると思います。

  • .NET Framework 4.0
  • Windows Identity Framework

ダウンロードしたファイルを解凍し、SiteMapEditor.exe を実行します。初めて起動すると下図の画面が表示されます。ローカルに保存したサイトマップを開くする場合は、Open SiteMap をクリックします。今回はOnPremise に接続してサイトマップを編集します。 Load SiteMap をクリックします。

接続選択ダイアログが表示されます。初めて接続する場合は、接続情報がありません。 Create new connection ボタンをクリックして接続情報を作成します。

Connection dialog が表示されます。Connection name に適当な名前を付けます。Server Information にサーバー名を指定します。80ポート以外を使用している場合は、 Server Port にポート番号を指定します。サーバー情報を入力後 Get Orgs ボタンをクリックします。

接続に成功すると、Organization ドロップダウンに組織の一覧が作成されます。接続先組織をOrganization ドロップダウンで選択します。OKボタンをクリックします。

すぐに接続を行うかの確認ダイアログが表示されます。はい をクリックします。

CRM Online への接続する場合は、Connection dialog で次のように入力します。 Server Information で Use CRM Online をチェックすると、 Authentication グループボックスの Custom Authentication が自動的に選択されます。Live ID と パスワードを指定します。 Server Name にCRMオンラインのサーバー名入力して Get Orgs ボタンをクリックします。

接続に成功すると、サイトマップ情報が下図のように表示されます。

サイトマップエディタの使い方は、XMLノードを作成、編集する場合は、ノードを右クリックして表示されるコンテキストメニューから追加、編集したい内容を選択します。下図ではGroupを追加しています。

XMLノードの属性を編集するには、編集したいノードを選択します。下図のようの画面右側プロパティ欄に属性情報が表示されます。属性情報を変種したら Save ボタンをクリックして変更を保存してください。Save ボタンをクリックしただけではCRMサーバーには書き戻されません。

下図はDescriptions ノードを追加して 日本語用の説明を設定している例です。

下図はSubArea を編集している画面です。図右側を見てわかるとおり、Select entity ボタンや Icon の ... ボタン、 Url の ... ボタンをクリックするとエンティティの一覧やWebリソースの選択画面が表示されて便利です。下図では外部のURLを設定しています。

下図はエンティティ用のメニューを編集しています。Icon欄にあるように...ボタンでWebリソースを選択すると、Webリソース用のURL文字列を生成してくれるので便利です。

変更した内容をCRMサーバーに反映する場合は、 ツールバーのUpdate SiteMapボタンをクリックします。ローカルにサイトマップ用のXMLファイルを保存する場合は、 Save SiteMap ボタンをクリックします。

サーバーのSiteMapへの変更が反映されると下図(左メニューの外部リンクやサンプルメニュー)のように変更の内容を確認できます。ちなみに外部リンクを指定してメニューをクリックするとわかりますが、新しくブラウザが起動するのではなく、画面内部にURLで指定したページが表示されます。

2.まとめ

説明は以上です。UIを通じてサイトマップを編集できるため、タイプミスといったつまらないミスをなくしてくれます。エンティティも選択ダイアログから選択できます。特にWebリソースを選択用のダイアログで選択し、接続用のURLを自動で設定してくれるのは便利だと思いました。

XMLノードの内容はその属性情報はSDKのサイトマップのヘルプを確認してください。サイトマップエディタはXMLノードの内容や構造を理解していれば簡単に使えると思います。

試してみてわかったのですが外部のURLをSubAreaに指定した場合、エンティティのレコード一覧が表示される領域に外部ページが表示されます。外部リンクへのURLをSiteMapに埋め込むのは不適切なケースがあるかもしれません。その場合はアプリケーションリボンにタブを追加して外部リンク用のボタンを配置したほうがよいかもしれません。