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.

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

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:

http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&gid=21231&discussionID=7432367&sik=1253708987811&trk=ug_qa_q&goback=%2Eana_21231_1253708987811_3_1

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:

Repurposing:
——————-
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.

Renaming:
—————-
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 2 for Microsoft Dynamics CRM 4.0 Released

Microsoft has released Update Rollup 2 for CRM 4.0.  The rollup includes all of the Update Rollup 1 fixes and a ton of important new fixes.  These fixes address several important issues that I know many people were facing.  By my count, there are 111 new hotfixes in the rollup and 17 previously undocumented issues.

I was surprised (pleasantly) to see another rollup released so soon.  Update Rollup 1 came out back on November 24 (less than 2 months ago).  I guess that means that the CRM team has been hard at work cranking out fixes.  The fact that this happened over the holidays is even more impressive.

http://support.microsoft.com/kb/959419

There are a lot of fixes for the Outlook client and for workflows.  Here is my Top 20 list of the most important fixes (or at least the ones that cause the most problems for me and my colleagues):

Outlook Client Issues

  • 950372  You are prompted to enter your user name and password multiple times when you start Outlook, or when you click a Microsoft Dynamics CRM folder in Outlook, on a Windows Vista-based computer
  • 951432  You cannot go online again in the Microsoft Dynamics CRM 4.0 client for Outlook with Offline Access if you switch to a different network connection while you are offline
  • 952148  Error message the first time that you try to go online after you upgrade the Microsoft Dynamics CRM 3.0 client for Outlook to the Microsoft Dynamics CRM 4.0 client for Outlook with Offline Access: “An unidentified error occurred”
  • 956859  The Microsoft Dynamics CRM toolbar is disabled in Outlook after you lose the network connection for less than one minute
  • 957421  Outlook may crash when you synchronize Outlook with the Microsoft Dynamics CRM 4.0 client for Outlookli>

  • 958031  Error message when you go online in the Microsoft Dynamics CRM 4.0 client for Outlook over a low-bandwidth network or a high-latency network: “An unknown error has occurred”

Importing Data

  • 948987  Error message when you import data into Microsoft Dynamics CRM 4.0 by using the Data Import Wizard or start a new data migration by using Data Migration Manager: “Mismatched data delimiter: only one delimiter was found”
  • 949652  Error message when you try to import a CSV file into Microsoft Dynamics CRM 4.0: “The source data is not in the required format”
  • 953033  Error message when you try to import data that involves a picklist attribute in Microsoft Dynamics CRM 4.0: “Transform parse data”

Workflows and Async Service

  • 952322  A workflow rule does not work as expected when you perform the workflow rule in Microsoft Dynamics CRM 4.0
  • 953586  Error message when you try to start the Async service in Microsoft Dynamics CRM 4.0: “Exception while starting async service: MSCRMAsyncService”
  • 956237  The workflow remains in a waiting state after you create a workflow rule to update the status of an opportunity in Microsoft Dynamics CRM 4.0
  • 956282  Error message when you use the Microsoft Dynamics CRM 4.0 SDK to develop a Custom Workflow Activity assembly: “The Key cannot be NULL”
  • 956751  A workflow is triggered two times even though you set the corresponding workflow rule to run only when the activity status is Completed in Microsoft Dynamics CRM 4.0

Customizations

  • 946745  You cannot import the customization for an entity to a new system in Microsoft Dynamics CRM
  • 951909  Error message when you try to import a customization to another Microsoft Dynamics CRM 4.0 server: “Invalid name prefix”
  • 954322  Error message when you import some customizations to an upgraded installation of Microsoft Dynamics CRM 4.0: “Either the file could not be uploaded or Import failed”
  • Microsoft Dynamics CRM 4.0 cannot load custom pages that reference assemblies. This issue occurs if the assemblies are deployed to the following folder:
    <crmwebroot>\ISV\<app>\bin

Miscellaneous Errors

  • 958836  Error message when you run a custom report in Microsoft Dynamics CRM 4.0: “An error has occurred”
  • When you use impersonation in an Internet-Facing Deployment (IFD) environment, you receive the following error message: 0x80040204 Invalid user auth.