Tips for Creating Custom SRS Reports In CRM Online 2011

Prior to the release of CRM 2011, I was relieved when I learned that the CRM Online group was going to allow customers to deploy custom SQL Reporting Services reports.  I just wrapped up building the most challenging SRS report I have ever built and experienced many challenges, limitations, and frustrations associated with building custom SRS reports for CRM Online.  Here are some quick points that I hope will save others some time and frustration:

  • You must use FetchXML…you cannot use SQL and CRM filtered views with CRM Online
  • CRM 2011 Online does not support most SRS functions in expressions
    • You will receive a vague error when you try to upload a report containing an unsupported function
    • (-2147188072) “An error occurred while trying to add the report to Microsoft CRM. Try adding the report again. If this problem persists, contact your system administrator.”
    • As an example:
      • CInt is supported
      • Fix, Floor, Int are not supported
  • FetchXML is much more limited than SQL
    • No functions or expressions
      • Unlike SQL, FetchXML can only return attribute values…you cannot apply any functions to do data conversion inside FetchXML
    • Basic Joins only
      • You can create joins on a single attribute only

The fact that you can create custom SRS reports in CRM Online now is fantastic.  It can be challenging but if you are persistent and creative enough, you can probably find a way to build the report you need.


CRM 4.0 to CRM “5” Transition

According to my Twitter sources, Microsoft announced today, at Convergence 2010, that “CRM 5 will be released by the end of the year with CRM Online first then on-premise.”  Now that’s the first time I’ve heard the release date officially pinned down that precisely.  I’ve been hearing Q4 and even early Q4 2010 for a while now.

Early adopters in Microsoft’s Metro program (select ISVs, key partners, and customers) have been working with Community Technology Preview 3 for a few weeks now.  We should be seeing a widely-released Beta in the near future.  That puts a lot of ISVs, Customers, and Developers in a quandry about when to make the transition to working on the new product and what to do in the meantime.  At some point you will want to stop working on Microsoft Dynamics CRM 4.0 and start customizing, developing on, and implementing CRM “5”.

That leaves you with a few choices for what to do right now:

  1. Plug Away: Keep Working on CRM 4.0
  2. Wait: Do nothing until CRM “5” is released (i.e. put everything on hold)
  3. Make the Move: Get your hands on CRM “5” asap and start working with the new version
  4. Hybrid Approach: Work on some things, wait on others

You will obviously want to have all the information you can get about the new features in CRM 5.0 and how it compares with CRM 4.0.  Without adequate information, you are sure to make bad choices.  Here are a few examples:

  • Developing an integration that is INCLUDED in CRM “5”
  • Developing a feature that is INCLUDED in CRM “5”
  • Developing code using the CRM 4.0 SDK that will be obsolete (while still probably backward compatible for one version) when CRM “5” is released
  • Developing a UI customization that doesn’t upgrade well
  • Developing something with a CRM 4.0 Architecture that would be much more efficient in a CRM “5” Architecture
  • Leveraging CRM 4.0 customization capabilities that are depricated in CRM “5”

Unfortunately, if you are not an early adopter, your access to information is fairly limited.  All early adopters are under NDA and have agreed not to share information about the new version.  I, myself, have signed the NDA (CourseMax is in the Metro program) so I can’t divulge anything yet either unless it has already been made public.  However, all is not lost, as there is quite a bit of information you can find out on the web that Microsoft personnel have been willing to release.

The best source of information at this point is the CRM 5.0 SDK which isn’t publicly available yet.  Once the feature set is locked down, the muzzles will come off.  Until then, your next best source of information is the probably the “Statement of Direction” available to customers and partners:



Quite a bit of information was released at PDC09 which has been blogged about all over.  There is also a lot of information from various Microsoft Bloggers:

CRM “5” Workflow on Channel 9, March 22, 2010, Simon Hutson, Dynamics CRM UK Blog

Microsoft Dynamics Offers a Preview of xRM Updates for CRM 5 at PDC09, November 2009, Microsoft Dynamics CRM Communities

A Sneak Preview of Microsoft Dynamics CRM 5.0: More Social Networking, Charts, Customer Service Capabilities, September 17, 2009, Katie Morell, MSDynamics

An Early Look at CRM “5”, December, 2008, Ben Riga, Microsoft Dynamics CRM Team Blog

There are also a lot of loose lips out there so do some Bing searches and you’re sure to find a good bit of info out there.  I’m headed off to CRM “5” deep-dive training for ISVs at Directions Training Center (an awesome CourseMax CRM customer and top partner for Microsoft and other IT Training) in Chicago and looking forward to learning more about Microsoft Dynamics CRM “5” that I can’t talk about yet.

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to Ma.gnoliaAdd to TechnoratiAdd to FurlAdd to Newsvine

Microsoft Dynamics CRM Resources

I put this page together to keep track of useful links related to Microsoft Dynamics CRM.  I did it as much for my own use as anything but if anyone else finds it useful, all the better.

Microsoft Dynamics CRM: Workflow Authoring Best Practices
Gonzalo Ruiz, Business IT Professionals, Inc., Microsoft, January 15, 2010,
I love this post. Gonzalo explains five important best practices for building workflows.

Microsoft Dynamics CRM – Advanced Workflows
Ayaz Ahmad, MVP – Microsoft Dynamics CRM, Microsoft Dynamics CRM Team Blog, January 05, 2010

Workflow: Wait Command CRM 4.0
Dynamics Forums > CRM, February 01, 2010
Discussion around how to use the Wait and Timeout Activities in CRM Workflow

Workflow E-mail Utilities
Jim Steger, Sonoma Partners, December 15, 2008

E-Mail Router
Configuring CRM 4.0 R8 On-Premise E-Mail Router with Exchange Online / BPOS
Steve Noe, B01/27/2010

Development and Customization

ISV Utilities for Comparing Customizations and Transferring Configuration Data
Inna Agranov, Microsoft Corporation, February 2009

Inline Grids for Sales Orders in Microsoft Dynamics CRM
Ben Vollmer, November 14, 2008

CRM Client AutoUpdate
Eric Newell, May 08, 2008

Change default Organization in CRM 4.0
Just Cruising Today Blog, January 15, 2009

Data Migration
Microsoft CRM 4.0 Data Migration Manager versus Scribe
Dale Simmons, Customer Effective Blog, March 13, 2008

Data migration overview
Microsoft Dynamics CRM Resource Center

Tool to Update MSCRM 4.0 data inline and Export to CSV for Re-import
Microsoft, CodePlex

Microsoft Dynamics CRM 4.0 Bulk Update and Export tool
CodePlex, OrbitOne Internet Solutions

Advanced Data Migration Map Editor for MSCRM 4.0 Data Migration
Microsoft, CodePlex, Mar 17, 2008

Integrating CRM using SQL Integration Services (SSIS)
CRM MVP Darren Liu, Crowe company, May 07, 2008

SQL Server Integration Services And Microsoft Dynamic CRM
Microsoft, CodePlex, Sep 15, 2008

MSCRM 4.0 Bulk Data Export Tool
Microsoft, CodePlex, Apr 18, 2008

CRM Data Import Tool
Veeran Bansal, Adithya Vishwanath, Arun Kumar, Microsoft Dynamics CRM Team Blog, January 25, 2008

Advanced Data Migration Map Editor for CRM 4.0 – Redux
Gaurav Agrawal, May 02, 2008

Tip: Using Microsoft CRM Import Data Wizard with Alternate Language

Here’s a quick tip if you are trying to import data into CRM that uses a foreign character set and you are getting gibberish. If you save your data from Excel to a .CSV file, it will be saved in ASCII/ANSI format which uses 8-bit encoding.  In simple terms, encoding means mapping characters to numbers.  Everything is stored as a number represented as bits in a computer so text has to get encoded/decoded when you store/display the data. When you import the ASCII data into CRM the imported data will look like gibberish because it is being decoded as a different character set than the source data. The trick to getting around this problem is to save the CSV file in Unicode (32-bit, Universal character set) format before you import it with CRM’s Import Data Wizard.

  • From Excel, choose Save As then save the file as CSV.
  • Open the CSV file in notepad then do a “Save As”
  • In the Save As dialogue, you will see a picklist labelled “Encoding” that defaults to ANSI (8-bit)
  • Change the Encoding to Unicode, change Save as type to “All Files” then click Save

Now you can import the data to CRM and you’ll get the original data instead of gibberish.  Sometimes I’m glad that I’m an old guy with a programming background because I had to learn about character sets, encoding, data types, bits, and bytes.  Understanding the basic fundamentals sure does make troubleshooting easier.

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to Ma.gnoliaAdd to TechnoratiAdd to FurlAdd to Newsvine

LinkedIn API’s are Open for Business

I got an email on Monday from LinkedIn that their API’s are “Open for Business”. We applied for access to their API over a year ago. We wanted to do some social networking mashups with CourseMax CRM and LinkedIn. However, LinkedIn never responded to our application and so I gave up, assuming they would never come around to opening up their platform to anyone but Tier 1 players. While LinkedIn still holds on to its status as the “Professional” social network, Facebook seems to be eating into their share of that crowd (at least in my circles). I think LinkedIn has a real fight on their hands now but “Better Late Than Never”. You can find the LinkedIn API page at:

I can’t wait to see all of the cool CRM mashups. Hopefully the Social Networking Accelerator will be updated to include a rich integration with LinkedIn.

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to Ma.gnoliaAdd to TechnoratiAdd to FurlAdd to Newsvine

Renaming or Repurposing Microsoft CRM System Entities

I’ve been taking part in an interesting discussion on the LinkedIn “Microsoft Dynamics CRM” group. The following is the extremely long link you will have to use to get to this discussion:

You’ll need to be a member of this group to read the discussion.

It started out with a great question about ”

Are there any real incentives of renaming the “Contact” entity?

Given that it would necessitate a lot of other work in changing the help file, user documentation, etc. this is a logical question. Several members posted responses about repurposing system entitites to which I replied:

While all of the other input is valid and valuable, I think [original poster] (she can verify) is talking about renaming Contact just for the sake of calling it something else, not repurposing it.

To which another member posted:

That begs the question, “What is the difference of renaming and repurposing?”

And here is my answer, fwiw:

I’m not sure you’ll find this in Webster’s but here’s how I would explain it:

Using a system entity for something other than it’s original purpose.

ex: “Fax” to “Instant Message”.
We are adding or changing some functionality of the fax entity to make it an IM.

Another defining characteristic of a repurposed entity is that we can no longer use it for the original functionality (i.e. we no longer have faxes).

Another (less obvious) example might be calling Contact “Tenant” in a real estate customization. We haven’t changed any functionality but, by calling Contact something specific like Tenant, we’ve functionally (although not technically) ruled out having other types of Contacts who might have some relationship with us other than Tenant.

Changing the name of a system entity to something else while still using the functionality exactly the same way.

ex.: Contact to “Person”, “Individual”, “Constituent”, etc.
We’re calling it something else but that is all we’ve changed. We still use it exactly the same way.

I believe “Renaming” is what [original poster] meant and, in my opinion, the disadvantages/costs she mentioned outweigh the advantages of calling Contact something else in most cases. If you explain these tradeoffs to a user they will typically come around and decide not to rename it. But sometimes they just want to call it something else.

I’ll admit, I didn’t reference any definitive source for this definition. I’m just relying on my experiences. I could be wrong and perhaps there is no difference between renaming and repurposing. What do you think?

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to Ma.gnoliaAdd to TechnoratiAdd to FurlAdd to Newsvine

Update Rollup 3 for Microsoft Dynamics CRM 4.0 Released

It seems like only yesterday we finished updating servers and clients to Update Rollup 2. I guess that’s because it pretty much was yesterday.  So, here we go again. Looking at the content of this rollup, a couple of things jump out at me:

  1. Very few hotfixes that were released as individual hotfixes
  2. The issues are getting more minor and unlikely to affect you
Type of Fix Count
Hotfixes and updates that were released as individual fixes 6
Issues that were not previously documented in a Knowledge Base article 65
Hotfixes and updates that you have to enable or configure manually 17 *

* Some of the updates that need to be configured manually are repeats from UR2.

Now that Microsoft has gone with a short, 2 month cycle for rollups, we are seeing far fewer individual hotfixes being released.  I think that is the new strategy.  With a 2 month cycle, there’s no reason to publish minor hotfixes that will be included in the rollup in a few weeks.  The issues & fixes are pretty minor.  CRM 4.0 has become a solid and stable product. And well it should after 14 months in market.

Get it here:



Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to Ma.gnoliaAdd to TechnoratiAdd to FurlAdd to Newsvine