Since last few days I have been trying to delete one Managed Solution, its a Salesforce Connector for Microsoft Dynamics CRM (2016). ExactTarget Solution

Here are my notes on approach and resolution

  • Custom stuff – first target
    • Any unsupported customization, scripts, plugin steps registered on having the fields from the target solution.
    • Drop Indexes and statistics that use custom entity attributes
  • Create a new Solution as play area to add/remove items to check dependencies
    • Add All entities to another solution, it will show all other entities where there is relationship to, so go ahead and remove them one by one.
    • You may want to disable all WFs, some times there are specific Bulk deletion jobs also.
  • Add all web resources and for each one check dependencies – Remove/Replace them
    • In our case we had used a custom JS file on default entities.
  • Before you start removing stuff, make sure to check Timeout settings
    • After initial rounds we realized that its timing out while deleting even few thousand records because too many indexes were added
    • Increase timeout to suit your infrastructure (This is only applicable for On-Premise)
  • Delete all data that is for custom entities from the managed solution
    • During uninstall, it failed several time and the reason was timeout to clear data. We had custom Activity as one of the entity with just 70k records but it was taking time.

Data gone, dependencies removed, you are all set to delete solution. If you still find anything keep removing it step by steps.

Some final tips

  1. Avoid deleting it again while earlier process is still in work – Some times if you are not sure.
  2. Do not under-estimate the data deletion – Bulk deletion jobs might take long, so plan the deletion activity in advance
  3. Trace log – Event log is not useful, At times it becomes necessary to enable trace and monitor it when you see repeated failed attempts with no reason for it.

Feel free to share your ideas.