Merger Ahead

Can Merging Tables in CRM 2013 Wait?

This topic came up no long ago in a customer, the upgrade to 2013 automatically merges the tables, which would be fine if it did not take so long.

You might not notice the issue when upgrading DEV or UAT environments, but it’s when you try the PRD database where the fun really starts.

In our case it was taking +24h for the upgrade alone. And some times one cannot afford to wait that long.

Consider that on top of those +24h you have to do configuration changes in CRM (specially if it’s a side-by-side upgrade), and smoke test core functionalities (e.g.: integration points) before considering the deployment complete and “we’re live” can be announced.

If its an in-place upgrade, CRM wont be operational or running very slow, and lets face it, users should not use a system during a deployment.

If its a side-by-side upgrade, usage of the old system while you upgrade will for sure be requested, and that means to migrate deltas after go live, and migrating deltas has to be carefully planned, topics such as the following should be considered:

  • How can you identify the deltas? Is createdon and modifiedon enough?
  • What will users do while the deltas are not migrated? (they probably will manually re-create some data, and we can see where this is headed…)
  • How will you migrate the data? Will the lovely MSCRM Toolkit do the job?

The above are not really good options, but there is a third one.

Can I leave merging for later?

You sure can. This registry change does the trick, but it has to be done before running the migration in CRM Deployment Manager:

  • Location: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\ MergeBaseAndExtensionTables
  • Type: DWORD (32-bit)
  • Value: 0

as per Microsoft’s article Run the base and extension table merge as a separate operation

This can allow a go-live during a weekend, and leave the merger for another time.

Why run it at all?

The reason for Microsoft to merge the tables is to “reduce SQL deadlocks and performance related issues”.

So…it will run better, but will it run worse than the previous versions if not merged? So far there have been no indications that it does, and so far new Update Rollups can be deployed without having the tables merged as a requirement.

Despite the above, merging is the default action, and the recommended one. Not doing it will only postpone the issue.

Consider, time and budget availability, if it is not considered as critical as other initiatives, you could pull it off for a while…

How long can I get away with it?

Andy Zhang has a good post that helps address this topic, in short you cannot disable merging for a 2015 upgrade, so that’s how far you can go, or until Microsoft releases a UR with merging as a requirement, ;).

Check out Andy Zhang’s post CRM 2015 Upgrade: A Few Things You Can Prepare Ahead of Time, very useful.

Advertisements

Top 10 CodePlex Tools for Microsoft Dynamics CRM

CodePlex is probably the best source of free and open source Microsoft projects.

Amongst other uses, it is used extensively by the Microsoft Communities to share free tools and add ons to existing CRM technologies (MSCRM; SharePoint; etc.)

Currently hosts around ~794 on CRM.

So… a lot…to trim it down a little bit, below is a top 10 of what I consider currently to be the best, most helpful, tools in CodePlex for MSCRM. These are tools I use consistently in a daily basis and that in generally an IT professional working in the Microsoft CRM arena, would, or should, know.

 

And you? What is your top 10? Got any favorites? Share your thoughts in the comments below. Chers.

MSCRM ToolKit updated to work with CRM 2015

MSCRM ToolKit was updated this weekend to work with CRM 2015.

MSCRM ToolKit  is now compatible with Microsoft Dynamics CRM 2011,2013 and 2015 projects.

MSCRM ToolKit allows for core records to be migrated between environments (DEV; UAT; PRD) and keep the same guids, this is extremely valuable as it prevents several issues when using lookups to these records on workflows, views etc.

This tool is available at http://mscrmtoolkit.codeplex.com/

Custom Code Validation Tool for Microsoft Dynamics CRM 2015

To help prepare for upgrading to Microsoft Dynamics CRM 2015, Microsoft has just released the Code Validation Tool for CRM 2015.

This tool will help identify potential issues with custom JavaScript in JavaScript libraries and HTML web resources.

The most common issues that this tool targets are:

  • Common DOM manipulations
  • CRM 2013 Deprecated APIs

Watch out for Custom Entities Name

When adding new entities to MSCRM a special attention goes to the singular and plural conceptual names given to the entity.

Although the interface does no complain when creating and alterintg the entity, it should not have the same names as another entities.

As an example is the standard Territory entity provided in MSCRM, which has Territory and Territories as singular and plural names. It is possible to add new entities with the same singular and plural conceptual names, however when the customizations xml is imported in a new MSCRM deployment, the import fails!

I found only ways of correcting this issue, as follows:
  1. Alter the entities names on the source deployment until you get a correct customization xml file.
  2. Alter the xml file itself in until the import goes Right. This second alternative is not advised because altering the xml file should be a last resort and because the first alternative leaves you with both deployments “exactly” the same. However it is no always possible to export the xml again, if this is the case, the xml file should be altered in the following types of entries:
  • LocalizedName
  • Original Name
  • LocalizedCollectionName

The three types of entries mentioned will appear in several places, some relative to the base MSCRM entity, in which case it should not be modified, and the the custom entity created, in which case the name (in the example “Territory ” and “Territories”) should be altered to another name that is not being used to other entities.

Blogging…

Almost a Year ago I’ve Started working in MSCRM Implementations. Along the way I’ve found a community of blogs that have been determinant to better understand the particularities of MSCRM solution and to surpass the daily development difficulties. On this blogs links are some of the many blogs/sites I consult regularly in my every day MSCRM activities.

This blog is about giving back, contributing to the community with my own findings/knowledge, and hopefully helping other MSCRM implementers along the way…