Tag Archives: microsoft crm 2011

Compare and Merge Microsoft Dynamic CRM 2011 solutions

I would like to share a quick and rough (but works) tip of comparing two Microsoft Dynamic CRM 2011 solutions. I have been in the project with several teams and each of them need a separate CRM instance to work on. With the export/import solution functionality provided by Microsoft CRM it should not be the problem when we merge them to the core DEV instance. Though it is not true for some duplicated changes. For instance; if the OptionSet items were added to the same OptionSet field on two instances. In some cases, we need to make sure that we don’t lost any change even from the duplicated change. I know, it sounds like quite unwell manage but in some circumstances we have no choice and I’d skip about the better idea of how to manage this kind of problem.

To do eyes compare on CRM customization of two instance via CRM website should spend pretty long time if the system is huge (number of customization entities and attributes).

So let’s begin to make it more friendly with eyes and save some times.

  1. Use this excellent tool metablast to export the metadata of both CRM instances. You should have two csv files listing all metadata.
  2. Now make them having the same order; by opening those csv files with Excel and sort them by Entity Name and then by Attribute Name. Make sure both fields are schema name not the display name.
  3. Use WinMerge or other compare tools that you familiar with if any to compare the csv files.
  4. You can also export the compare result from WinMerge to a html file for later reference or to pass it to other team members.CRM compare result

Now you can simply list the inconsistent entities and fields to another excel file to perform merge action with this. Hope this useful for someone whom in the same situation.

Tagged , , , ,

OptionSet Batch Management for Microsoft CRM 2011

So long no post since the previous post. I used to work with Microsoft CRM 4.0 and Microsoft CRM 2011 for a few years back and made several tools for particular usages. I was also trying to blog and share them but something blocked me from finishing it. Here it is one of them I can recall the location.

I recently have a chance to back to work on Microsoft CRM 2011 after quite a long switched to custom application and web application development. I discovered that Microsoft CRM 2011 has now quite a lot of tools to ease the developer and/or administrator to develop and customize the system. There are many more than the last time I developed 2011 version. However, as we all know the clients never ending asking for a special feature which standard features of Microsoft CRM doesn’t provide. It is the reason why those complexity and huge systems like CRM and ERP need to have developers.

My latest client has many teams joining in the project and many people do entity customization. It causes inconsistency to be happened. One of the ruffle thing is that the value of OptionSets are like a jumping number. For instance; 1:Cash, 2:Credit Card, 1000000:Debit. This could easily happen if you have many distributed solutions(for dev maybe) to merge to UAT and PROD. Each solution could set it’s own configurable initial number of OptionSet value.

When I see this kind of mess, I really need to clean it up before hand it to production environment. The problem was the system was huge and custom OptionSets are all over the place. I saw several OptionSet manager tools but all of them aim one by one OptionSet edit and actually none of them touch the OptionSet’s value.  I can understand that it is unsafe to change the OptionSet value if it is referenced by any existing record. Though in some case like just before delivering the system to the new environment with completely blank data; we are safe to do this kind of clean up.

I so develop my own tool to manage this kind of need and I named it OptionSet Batch Manager for Microsoft CRM 2011. I uploaded to CodePlex here. For the first version, it could do reorder by value and name and resetting value of OptionSets either as a batch(upon selection) or individual. Hope someone find it useful!

OptionSet Batch Manager screenshot

OptionSet Batch Manager screenshot

Addition note: I used Reactive Extension or so called Rx to manage thread for service calls. For anyone who interested, you can either use TFS to checkout the full source code from CodePlex or directly download source code which I will soon upload.

I’ll share some tricks to compare and merge two inconsistent CRM 2011 solutions in the next post.

Tagged , , , , , ,