When using dashboards in CRM, in most instances these objects will be exposed through a Sharepoint webpart, but keep in mind that dashboard reports can also be exposed in CRM via a URL in sitemap. While this method doesn't offer quite the flexibility as that found in Sharepoint, if a client doesn't have a sharepoint server or has issues with authenticating to Sharepoint (as can happen when users access CRM via IFD), this can be a good alternative. One thing to keep in mind with this approach is that the report might be using a URL with what an xml parser would consider reserved characters such as an ampersand symbol, which can be a common delimiter in report URL's. This can extend to other types of reserved characters but in our example we will talk about the & exclusively.
For example, consider the URL listed below. If I were to paste this into a browser in the source system, it would resolve the dashboard report just fine in a browser, but attempting to use this same URL in sitemap (an xml document) would render the xml malformed and error out when attempting to import it into CRM.
https://crm.customerserver.com/NOD/crmreports/viewer/viewer.aspx?id={93B4703E-E693-DD11-B0C9-0050569B3651}&helpID=BookingsDashboard1.rdl&action=filter
The solution in this case is to use a pre-defined character reference for the & symbol so that the resulting XML in sitemap can be parsed properly. Using our previous example, this is how the URL should appear in sitemap. Note that the & is now followed by amp;
https://crm.customerserver.com/NOD/crmreports/viewer/viewer.aspx?id={93B4703E-E693-DD11-B0C9-0050569B3651}&helpID=BookingsDashboard1.rdl&action=filter
Keep in mind that attempting to use this URL in a browser URL address will result in errors as it's not going to be able to interpret the character reference . So the true test is to put copy this URL into sitemap (customizations.xml) and opening it in an xml parser - the xml parser should now be able to clarify which part of the code is the content and which part is the tag and transform the URL accordingly, as shown below:
</SubArea>
<SubArea Id="Dashboard" Title="Dashboard" Url="https://crm.customerserver.com/NOD/crmreports/viewer/viewer.aspx?id={93B4703E-E693-DD11-B0C9-0050569B3651}&helpID=BookingsDashboard1.rdl&action=filter" Icon="/_imgs/bar_bottom_ico_reports.gif" />
- <SubArea Id="nav_reports" Entity="report" Url="/CRMReports/home_reports.aspx" DescriptionResourceId="Reports_Description">
<Privilege Entity="report" Privilege="Read" />
</SubArea>
Where I come from girls are considered to know nothing about IT, but my girls and I started a blog and promoted it to receive some visits. It’s a start but we will not back down from this challenge.
Posted by: Jeff Paul Scam | February 23, 2009 at 11:32 PM
Thank you! I was having issues getting my Sitemap to import and your post solved my problem!
Posted by: Tyler | December 29, 2009 at 10:42 PM