Sometimes the “minimal org copy” function in CRM Online Instance Manager doesn’t work. You may receive an “Instance Failed” status when trying to do so. Especially now with the advent of CRM 2015 it seems to be happening quite often. If this occurs, and you really can’t wait for guidance from Microsoft, here’s an option for you:  create your own copy(s) of unmanaged solutions and migrate them to a new blank org. However, this can be tricky depending on the types of solutions and customizations that may exist in your production instance.

Managed vs. Unmanaged Solutions:

For example, let’s say you have 3 managed solutions in your instance:


…plus all of your own unmanaged customizations to base entities, custom entities, Sitemap, Ribbons, and what have you? What’s the best and quickest way to get this done?

If you are like many clients of ours, you might have an extensive array of custom entities outside of the managed solutions. If that is the case, we recommend installing the managed solutions into the new blank org first, via their own solution installers, then overlay with your unmanaged solution. It is not possible to move your managed solutions via your own custom solutions.

In general, the process would be:

  • Create new blank org using CRM Online Instance Manager

  • Install managed solutions (note Activity Feeds is an unmanaged solution that should already be there)

  • Migrate your custom unmanaged solutions via the full backup copy

  • Finish other setups like business units, users, security, and lookup entity data

Back Ups:

Building the “Full Backup Copy” solution of your unmanaged solutions could be problematic. Here are some tips you may want to consider. When a single solution becomes very large, the subsequent import has a greater chance of failure (reasons are too numerous to list here). An approach that may work for you is this one: start from the bottom of the component types and work your way up, add all components of each type, and by default say “yes” to this question about required components as you go.


This will incrementally add entities as it goes. I have found that if you try to start with entities, and “select all” there could be so many entities and so much “work” to do in the building of the xml content that the process could just stall and fail.

Note: by doing this incremental add of “required components” it is quite common that some of the managed components may be added to this solution as you go. This could be the cause of a subsequent failure, so I recommend that you remove managed components from this solution (or components related to Activity Feeds which is unmanaged). That is, as long as you believe your separate solution import of these managed components has created the required components in the new org already.

Reports:

Reports can also be problematic, so I recommend that you leave Reports to their own solution, and leave these to the end after the main solution has been imported successfully. The same can be true about plugins and SDK message processing steps and processes. It is your call whether or not you want to segregate these component types into their own incremental solution import after the main one has been completed.

Web Resources:

Leave the view as “Customizable” in the Select Solution Components window but sort it by State showing the unmanaged components first. There will be many web resources from Managed solutions. It is OK to leave these out of the full backup copy solution. Some of the unmanaged web resources (actually quite a few) will be from Activity Feeds, and it is OK to leave these in. So I would say add all of the unmanaged web resources here (but none of the managed ones). A simple click on top line and shift-click on last unmanaged line should suffice.

Client Extensions:

It is OK to add both SiteMap and Application Ribbons. Note: sometimes the Sitemap can cause problems – but for now let’s assume adding the SiteMap will be fine. Note: this will typically include references to managed entities so it is OK to say “No” to the required components for this one.

Option Sets:

It is OK to add all options sets here.

Entities:

Finally we come to the big one. There will already be some entities added to the solution from previous steps where you answered “Yes” to required components. When you click Add Existing, the default view is Customizable. In my example of doing this process I can see 128 “remaining” entities in the Customizable view, and in the All view I can see 145 remaining entities. It is best to use the All view just in case. Note: the “remaining” entities that show in the list are the ones that have not already been added to the full backup copy solution. Sort the list by State and first add just the remaining unmanaged entities and say “Yes” to the required components message. Next sort the remaining managed entities (there should ONLY be managed entities left) by schema name. The ones with prefixes are from outside the base CRM schema. So just bring in the rest of the base CRM managed entities now. Say “Yes” to the required components message.

At the end of this process, you still want to remove the entities from the 3rd party publisher solutions that are managed. Do this by sorting the entities that are in the solution by State and schema name (click on State column header, then shift-click on Schema Name column header). Prefixes in schema name (like cdi_ or msdyn_) indicate 3rd party publisher managed components. These can be safely removed from the full backup copy solution.

I hope this detailed explanation of the step by step approach to building a new sandbox copy of your existing production org will be helpful and will save you time.

For more information on this blog or C5 Insight, Contact Us.