Microsoft CRM 1.2 Redeployment

Well, I successfully completed my first CRM 1.2 redeployment this week from one server running SBS 2003 to a new server running SBS 2003. Here's the re-cap:

Scenario: Existing SBS server was underpowered and was being replaced with a new server with 3.6 GHz Dual Xeon processors and 3GB or RAM. Sweet. CRM was heavily customized, had several 3rd-party add-ons and numerous custom reports. ISV menus abounded, and there were some minor custom apps integrated as well.

Tools: MS CRM Redeployment Tools downloaded from Microsoft's website.

Review: As I often find, Microsoft's documentation was less than comprehensive. Thankfully, I've had enough experience with CRM to have been able to fill in most of the gaps, and looking at some past entries on the public CRM newsgroup was helpful as well. I don't suppose this is a project that someone would tackle if they didn't have a thorough understanding of CRM, but it always amazes me how much Microsoft's documentation takes for granted. I am a firm believer that technical documents should be written as though the audience is a complete neophyte. This is not to talk down to the reader, but because you can't assume your audience has intricate knowledge of the many related technical fields, especially with a product like CRM. To read MS' redeployment documentation, you really need to have an understanding of CRM, SQL, IIS, Crystal, your chosen backup tools, and other more cursory items.

Here's what I found lacking in their documentation:
1. Before beginning your redeployment, you should export your customizations and workflow to XML, and make copies of the web.config file and the isv.config file. If you have also customized the Sales For Outlook interface, you'll want to copy that config file as well. To get the customization XML, you go to Deployment Manager and right click on the top node and select Export Customizations. To get the workflow XML, you need to go to Start > Programs > Microsoft CRM > Export Workflow.

2. Installing the redeployment tools is pretty straightforward, and the documentation is adequate here. When you are backing up the CRM database files, though, you will have to stop SQL server. (Right click the little SQL icon in the system tray and choose stop.) This is not mentioned in the documentation, and if I was more of a SQL person, I probably would have known that immediately. As it was, it only took me a minute to figure this out. Fortunately.

3. The next bump I ran into was at the stage where I was trying to backup the Crystal reports. You need to run a command line utility to do this, and I followed the documentation to the letter, but couldn't get it to work. Several pages later, when the document covers publishing the reports onto the new server, there is a note that the procedure will not work if the Crystal password is not blank. I went back and changed the Crystal password to a blank one (In the CRM folder, go to the Tools folder. There's a CrystalAdmin.exe file that lets you do this) -- and voia -- the backup utility for the reports worked. Would have been nice if they had mentioned this earlier and saved me 90 minutes of trying different variations of the command.

4. Another SQL thing arises when you are restoring your databases. You restore the organization_MSCRM.mdf and the organization_Metabase.mdf files to the Data folder under MSSQL. But then, in SQL Enterprise Manager, you need to attach the databases in order to complete the restore. Right click on Databases > All Tasks > Attach. You'll want to name the databases exactly as they were on your previous server. This is not a difficult thing to do, but it certainly would have been nice if the documentation noted it. I guess I am just a stickler for detail and want to be able to read step-by-step every click and right-click I am going to be making.

After your redeployment, there are several things you'll need to do to get CRM running:

5. First, and perhaps most tedious, you need to update CRM server with the same exact hotfixes and patches that you had on your previous install. Hopefully you've got excellent documentation, or you may have to search the registry on the old server to find out which KB articles contained the hotfixes.

6. Turn off the GUID. If you had the annoying Email GUID turned off before, you'll need to turn it off again. This requires a simple DWORD value of 0 for the NameValue 'MessageTagBehavior' in the HKEYLOCALMACHINE/Software/Microsoft/MSCRM registry entry. You'll probably have to create a new one.

7. Import your workflow XML and customization XML. For workflows, all of the object ID's will have been changed for email templates, named users (as opposed to logical users), and subprocesses (other rules called by a workflow rule). You will need to go through each workflow rule one line at a time and re-associate these items. Make sure you get the Email templates, because they look like they are still calling the right template because the name is there in the rule, but you'll find that it is not populated in the template selection screen.

8. If you have any custom links to reports, or custom apps that call reports, you'll need to find out the new crystal report number for each report and make appropriate changes to the isv.config file or your custom app since these numbers are all changed when you publish the reports to the new server as well. To find the number of a report, run it from CRM and press Ctrl + N to open it in a new browser window. You'll see the number in the URL. (When you re-publish the reports, they should all show up and run fine from the Reports module area of the web UI, but, as in this case, you might have a custom menu on an object that calls a report and passes a parameters to it, in which case you'll need to make these changes.)

9. I also found that individual's email templates were not visible to them. Many people had created a signature template and the template was saved as being visible to an individual as opposed to the organization. To solver this, I opened each template and clicked on Tools > Make Visible To Organization. Then instruct users to copy their signatures and re-create them, so you can then delete the imported templates to unclutter the views of templates for everyone.

I think those are most of the holes I found in the documentation. The whole process took me less than a day. The next morning I went in and re-installed all the 3rd party apps, which took a good chunk of time. I hope this proves helpful to you if you are doing a redeployment of Microsoft CRM. It will be interesting to see how this relates to the upgrade process when MS CRM 3.0 ships.


Anonymous said...

I really appreciate your notes as I will be undertaking a similar excercise soon!

Peter Lynch

Anonymous said...

we have 2 servers in a particular domain.

In one server (A), there is CRM Server 1.2 installed with SQL Server 2000.

In another server (B), there is Active Directory & Exchange server.

We are going to install CRM 3.0 in another Server (C) which is also in the same domain.

We have the following queries:

1. Which is advisable? Fresh installation of MS CRM 3.0 in the new Server or installation of MS CRM 1.2 & later on upgrading to MS CRM 3.0

2. Is it possible to share the Active Directory (which is in B) for the existing MS CRM 1.2 Server (A) & the newly installed CRM 3.0 Server (C).

3. Is the table structure of MS CRM 1.2 & MS CRM 3.0 Same. Because we need to export datas from CRM 1.2 database to crm 3.0 database.

It will be great if you could provide suggestions for clearing these issues.

Thanks & Regards,

Matt Wittemann said...

First, the table structures are not the same and there will be a lot of difficulty if you try to create SQL DTS packages or another method to move data from 1.2 to 3.0.

You will also have many headaches if you try to run 1.2 and 3.0 in the same domain structure, with the same Active Directory.

The recommended structure would be to upgrade your existing CRM in place, then use the 3.0 Redeployment Tool which is included in the CRM 3.0 media to move your system to a new server. Good luck!

Anonymous said...

Does any one know whar are the differences in table structures of MSCRM 1.2 database and MASCR 3.0 database?
- msrinivasareddy@gmail.com

Franklin said...

Matt - Great article! I am undertaking a similar project and would like to speak to you about consulting on it. How do I get in touch with you? Thanks!

Davide Bedin said...

I have a CRM 1.2 installation still running and I found your post as one of the few mentioning this older version.
I just need to move the database from a server to the same one where CRM is running.
Apart from moving the SQL 2000 databases, what else do I need to do?
We are waiting to move to CRM Online as soon it is available in our market, so this is just a pro tempore solution

ICU MSCRM © 2004-2009