In this blog post, we will talk about one of the most common issues seen in CRM customization: A customer realizes that he doesn’t need several fields any more, or that they must be substituted with other ones. However, the Microsoft concept does not cover removals during solution importation.
Fields removed in the development system remain unchanged in the target system. These fields are garbage data. Usually, they are marked with zzz_ or (obsolete) in the display name. This data can even cause serious problems. For example, if a deleted field will be created under a new name but under a different type, (it happens frequently that a description field suddenly must be substituted with a picklist) the import in the target system will fail. The CRM system notes that the field already exists and its type doesn’t fit. This causes the import process to be interrupted.
If you want to delete these fields permanently, you can use a small trick. If you don’t want to lose the existing data in the productive system, you will need a holding solution that includes all the re-utilized entities/fields. Subsequently, you can easily uninstall the obsolete managed solution (Base_1.0). All fields and data from Base_1.0 will be uninstalled and deleted except everything that is covered by the holding solution. And now, you can install the clean solution (Base_2.0). You only have to uninstall the holding solution, and then you receive a clean system completely free from obsolete fields.
To create a holding solution, one should simply use the renamed Base_2.0 Solution. To do this, you just need to export the Base_2.0 solution in a separate folder. Then, extract and open the “solution.xml” with an editor.
There, directly at the top of the file, you will find the tag Base_2.0; the new name should be entered there, saved and packed into the solution zip package again. For safety reasons, you can rename the solution zip into the holding solution, and our holding solution is completed!
Attention: editing in solution.xml is not supported by Microsoft and is done at your own risk. In this case, we will consider it just a small detail, as it has already been tested and carried out multiple times.
Base 2.0 export
create the Hold
install the Hold
uninstall Base 1.0
uninstall Base 2.0