Dynamcis CRM 2011: reinstalling server from RTM to Rollup 10 v2

Yesterday afternoon I had to start a full re-installation of a CRM 2011 server due to missing product key to upgrade from trail version to production server license.  The trail server had installed rollup 10 v2 with English database language and Norwegian language package. The installation media provided by the customer was the RTM version, and I need to install this and first install the Rollup 6 before applying the Rollup 10 v2. When this was completed, I could reimport the old organization database.

Dynamics CRM in the Field” team has a good post with compact information with the different rollup and service updated, build number, release dates and KB articles.

In addition, Pablo Peralta has good step-by-step post on how to install a CRM 2011 server On-premise.


CRM 2011: upgrade from trail product key

Yesterday, I encountered a new issue for a customer. They received an error message stated that the trail key was to expire in a few days. “WTF!!!” was my first thought, but it seems this is a common scenario according to this post.

You will recieve a similar error message:


The most important thing to remember. Do not let the trail key expire. If you do so, you will have to re-install the complete server and import the organization one more time. This will cost about one workday alone.

The Product key can be changes from the “CRM deployment Manager”.


2012 – most popular blog posts

It’s time to summerize my blog year 2012.

Until my summer vacation, the number of visitors to my blog weren’t great at all. I had a monthly average on approxematly 100 hits per month. But after I started to write more posts from April/May, I got more hits. And when I started to become more active on the Microsoft MSDN forum, the monthly hits raised from 100 till 500. This is probably not great, but I’m satisfied. There are some souls that is following my blog and take time to read them.That is encouraging 🙂

My top 5 blogs, with most hits, for 2012 are:

  1. Read/write chunked data in C#
  2. Force TFS to sync with Active Directory
  3. CRM Email Router: enabling logging
  4. Report Builder 3.0 tutorial
  5. OpenXML SDK: reading Excel 2007/2010 documents

The post with “Chunked data” has been one of my posts with most hits – ever. It is not a great blog post IMO, but I have decied to write a follow-up with better examples during a few months to give the reader more value for their time and efford.

The post with forcing syncronisation of the TFS persmissions is just a refferal to another blog post with a few pointers. This is a common TFS problem, and referred post gives a solution. I will write a more detailed blog post on this to explain why and how this works for TFS 2012.

The last year I have started to work more with Microsoft Dynamics CRM. As a result, I have been writing more posts on this topic. The logging functionality in CRM can be a bit tricky and not easy to undertand fully, and it seems like people have troubles with debugging tasks in Dynamics CRM. I have done alot of debugging the last year for many customer and I have gained experience worth sharing. I will definitly wrote more blog post on CRM, installation/deployement and CRM in general in 2012.

The blog post on report builder 3.0 is just a referral to the Microsoft information, but many referrrals have been directed from google and bing during the last year, so it seems like Microsoft have some work to be done SQL Server Reporting Service to get this working properly. I haven’t worked with Reporting Serice alot the last year, but I have done some report with Dynamics CRM and FetchXML.

The last top post is a post on Office automation in Office 2007/2010 on how to read and write values in Excel. This a definitily a topic that I can write more post on. I’m kind of nerd when it come to reporting and prefer Excel to Reporting Serivice. I have used Excel a reporting client as a result that I have been more involved with technical people on-site with customers than middel and top management.

Migrating CRM 4 to CRM 2011 – Part 1

This is my second blog in the series of moving from CRM 4 to CRM 2011 in different scenarios. My first blog described the alternative of move a CRM 4 installation to new SQL Server 2012. After some consideration, the customer has decided to update the CRM 4 solution to CRM 2011 instead of just moving to a new SQL Server. The actual move to the new SQL Server 2012 involved a additional cost since the CRM 4 had to be updated with latest Rollup 21 to be compatible with SQL Server 2012.

After some googling and reading through the quite large, unreadable, exhausting to read. Yes, you get the information you need, but I can’t understand why Microsoft can’t write better installation guides. They surely have the man power.

Enough whining…

After some consideration, I decided to do the following:

  • Install a new CRM 2011 server and use the new SQL 2012 server
  • Take a backup of the organisation database on the old SQL 2005 server
  • Use CRM 2011 Deployment Manager to disable/delete the current “dummy” organsation
  • Restore CRM 4 organisation database (from SQL 2005) on the new SQL 2012 server
  • Use CRM 2011 Deployment Manager to import the CRM 4 organisation database

Just a small guide. I found this blog from Pablo, that helped me alot during the “read-up phase” for this migrating project.


CRM 2011: Invoice status

Here is a useful SQL statement for quickly find the invoice status based on Invoice.StateCode and Invoice.StatusCode. The SELECT will list all invoices for year 2012 where StateCode and StatusCode as both numbers (stored in CRM-database) in addition to the textual description.

	month(createdon) as monthNo, 
		WHEN StateCode = '0' THEN 'Active'
		WHEN StateCode = '2' THEN 'Paid'
		WHEN StateCode = '3' THEN 'Cancelled'
	 END) as StateText, 
		WHEN StatusCode = '1' THEN 'New'
		WHEN StatusCode = '4' THEN 'Billed'
		WHEN StatusCode = '100001' THEN 'Complete'
		WHEN StatusCode = '100002' THEN 'Parial'
		WHEN StatusCode = '100003' THEN 'Canceled'
	) as StatusText,
	count([TotalAmount]) as InvoiceCount
FROM [dbo].[Invoice]
WHERE year(createdon) = 2012
group by month(createdon), StateCode, StatusCode
order by  month(createdon),StateCode, StatusCode ;

The above SQL returns invoice count grouped by the different statuses. An example of the outbut is shown in the screenshot below: