Microsoft Dynamics 365 Blog


Larry asked recently why the web client looks funny when it is open at the same time as (or soon after) the Outlook client.  Most people notice the missing Settings area, but the Service Calendar is also AWOL as are a few buttons here and there.  (Here’s a KB with a list: http://support.microsoft.com/kb/910050/en-us.)


 


Issue The First – Cookies are a Sometimes Food


The desktop client is the version of the Outlook client that doesn’t offer offline functionality; it’s intended for the workstation sort of machine that never disconnects from the CRM server, and is a quicker and simpler to install and maintain.  It doesn’t include a client-side database or a little web server to serve the pages. 


 


Because there is no web server on the client, the desktop version of the Outlook client gets its pages directly off the CRM server.  However, as functionality is slightly different between the clients, the server needs to know to serve the Outlook client pages to the desktop client.  We considered a number of different ways to do this (Dominic’s design doc discusses options like multiple IIS roots, persistent ASP.NET session states, query string modification and custom HTTP header injection) but they were all broken in some scenarios and/or very complex and/or resource hogs.  The solution we went with was to use a cookie: when the desktop Outlook client starts, it creates a cookie, which identifies the client to the server.  When Outlook is shut-down, the cookie is removed.


 


While this was definitely the best solution, it has its downsides.  The biggest one is that if a web client is started up while the desktop Outlook client is running (and therefore while the cookie is present), the web client will end up with the Outlook client pages.  We justified this by deciding that most users choose a single client and stick with it.  (We get lots of feedback about this because admins are the main group who like to use both clients.)


 


Issue The First – Fixes and Workarounds



  1. Kill the cookie.

I usually just shut down Outlook and wait a little bit.  The cookie gets cleaned up and I’m good to go.  The alternative is to manually delete the cookie, either by clearing out all cookies in IE, or by going after the exact one – Andy Goodman describes this: http://www.sbs-rocks.com/CRM/DisappearingSettingsMenu.htm


 



  1. Use a different URL to access CRM in each client

Cookies are site-specific, so if you trick CRM into thinking you’re accessing different sites, the issue won’t occur.  Most people seem to use an FQDN or the IP address as the alternative.  Ben gives more detail: http://blogs.msdn.com/midatlanticcrm/archive/2006/05/23/Why-does-my-Settings-area-disappear-during-a-demo-of-Microsoft-CRM-3.aspx as does Matt:  http://icu-mscrm.blogspot.com/2006/03/crm-outlook-client-makes-features.html


 


It should be noted that currently, there are no plans to change this functionality in Titan, though steps may be taken to minimize the impact (i.e. converge functionality in the clients more).


 


Issue The Second – Using a Map to Get Lost


CRM uses a sitemap to define our navigation structure – both the left pane elements in the web client and the folder structure in the Outlook client.  The sitemap is stored in a file called, imaginatively, sitemap.xml.  This information is used a lot during the start-up of the clients, so to speed start-up, it is cached locally.  Unfortunately, our navigation is, by default, different in the two clients, so the web client can end up with the Outlook client navigation, which means a missing Settings area.


 


Issue The Second – Fixes and Workarounds



  1. Wait.

Sitemap should only be cached for a short period.


 



  1. Make the navigation the same in both clients

The sitemap is editable.  The missing “Settings” node can be added so that it is available in the Outlook client, which means that it won’t sometimes be missing from the web client.  However, you need to ensure that these additional pages won’t show up in the offline laptop client, because the infrastructure doesn’t exist offline.  Derik emailed me the how:


Edit the sitemap to replace the Client=”Web” attribute with AvailableOffline=”false” for each SubArea that you want to appear in both Outlook and Web Clients.


 


Remember to take a backup of sitemap before making modifications!


 


Here’s a KB about sitemap editing: http://support.microsoft.com/kb/916921


 


Note: While the cookie issue is unique to the desktop client, the sitemap caching issue occurs for both clients.  We’re looking at ways to change the sitemap issue for Titan.


 


 Ilana Smith

We're always looking for feedback and would like to hear from you. Please head to the Dynamics 365 Community to start a discussion, ask questions, and tell us what you think!