crm 2011 making changes to a managed solution entity - dynamics-crm-2011

we are currently working on a specific CRM development. As part of this development we are working with a different supplier who have provided us with a 'core' managed solution, a toolkit of sorts. This toolkit contains a number of entities/web resources etc but crucially contains the case and contact (renamed to customer) entities. As part of our development we need to extend these entities by adding attributes/amending form layout etc for both these entities.
should i create a new unmanaged solution - select add existing - choose the customer entity.
I can then make my changes (new attributes, form layout changes etc)
I then publish my unmanaged solution as a managed solution to import into a UAT/Prod environment.
Would this approach work ok?
What if the supplier make changes to their core entity and provide us with an updated release? what happens then or what should i do?
There are a couple of attributes (title and ethnicity) that are part of their entity but i need to work of global option sets so i have create 2 new attributes and these are displayed on the form in place of their's. I have not removed theirs but could this cause issues?
any help appreciated
chris

You are right on in the first paragraph, you would need to create a new solution and amend their entities. When you import their changes it will add on any additions to those entities. Importing customizations should never remove anything, you have to do that manually. Although unlikely, it is possible that the vendor may release a new version that requires you to roll back your customizations and reinstall it. In this instance you would need to come up with an upgrade plan and take into account all of the dependencies of the system.
I would imagine that those attributes would be dependencies of their managed solution and suspect that CRM won't let you delete them. If you are able to delete the fields and recreate them using global option sets there should be no issues so long as you use the same picklist integer values and schema names for the fields. Microsoft CRM basically copies all of the global option set values to the entity that you put them on so externally there is no difference between the standard and global option sets. Obviously a future upgrade by the vendor may force you to delete it all and recreate everything again manually (or via code using the CRM web services), but that is something you would have to take into account.

What the disadvantage here is, is if you create an entity, attribute or relationship in Dev and deploy to forward facing entity, if you then remove that entity, attribute or relationship in Dev, you must "uninstall" that solution. Of course, if you have critical data in that forward facing environment, it is gone when that solution is removed. So, if you deploy from Dev to forward facing, if in the future you no longer need that entity, attribute or relationship, although you can remove it from forms, it will always remain an artifact in your system. This is a disadvantage when working with Managed solutions.

Related

Where should I create a new entity field Dynamics CRM 2016?

I'm working on Dynamics CRM online 2016, the requirement is to create a new entity field inside all the entities that we have in a third party vendor solution (unmanaged).
I'm wondering what is the way to solve this requirement. Because that Solution is huge and it has more than 20 entities.
The third party vendor told me that I have to create a new solution and add all the entities to this new solution and then add the field in each entity. I guess that they want to keep separately new configurations and customizations.
However, my boss told me; you are free to choose working in that solution (third party solution) or to create a new one.
I think it's better and easier to work in the third party solution (because at the end, when I need to migrate these changes to our other instances, I will export and import this solution), however I'm fairly new in Dynamics and in terms of migration process, I do not know what is the best approach.
I really appreciate any suggestion from you guys.
It is fine to work in the third party solution, which I would recommend. If for some reason you prefer, it is also fine to work from a new solution you create.
The key is to understand that solutions do not really matter: The entities themselves exist in the layer of unmanaged customizations of the system. Solutions are simply containers that point to these unmanaged entities.
No matter how many solutions you have that point to a given entity, any modification made will be made directly to the entity.
Since you are using CRM 2016 you have the possibility of choosing which fields from an entity to include in your solution. This could be used if you for some reason really want to have one solution with and one solution without your newly added field.
MSDN has the following note about having multiple solutions with shared components:
Some components can be included in more than one solution as long as
any changes that were made to them are compatible with all other
solutions that use them. It is important that all the solutions share
the same solution publisher. If the solution publisher is not
identical, organizations will not be able to install more than one of
your solutions.

Dynamics CRM Goal Métric Native Subgrid

I have a customer that has removed a out of box subgrid from Goal Metric entity.
Now I just wanted to add that grid again, but how?
I have tried importing that entity from another organization but it does not overwrite the entity.
I appreciate any suggestion.
The unmanaged solutions sit on top of the managed solutions. So if you've allowed the client to change it, making a managed change will not fix it. You potentially could create a workflow with a custom action that uses the SDK to put it back, but you will not be able to change it via just a solution import

How to overwrite managed solution in CRM?

I exported managed solution S1 from my dev CRM. Then imported it on 'clean' TEST CRM machine. Now I made some changes on dev CRM like deleting and adding some fields from Contact entity. After, I made new export of S1 (as managed).
Now I want to update solution on TEST CRM. I choose 'Overwrite customizations'. But after update solution it is merged. Deleted fields are still present in Contact entity and new ones are added.
How to completely override imported managed solution on CRM?
Thanx
CRM Solutions can't be used to delete invidual items
Check out this blog post - it walks through some steps to overcome that limitation: Deleting things from a deployed CRM 2011 managed solution package
Installing a solution will never delete fields. Managed or Unmanaged. Overwriting Customizations will overwrite forms, views, web resources etc. But the schema will always be an accumulation of before + solution.
You don't create a solution as managed or unmanaged, you export it as unmanaged or managed. My guess would be that you exported it from dev as unmanaged the first time, therefore when you are importing it, it isn't overwriting your customizations. You can test this by attempting to remove your fields in your test environment. If you are able, then those initial changes must have been imported as a managed solution.

ms crm 2011 solutions

Assuming I received a managed solution from another developer which contains an amended contact entity. How should I best make changes to that entity without affecting theirs'?
The changes would be additions as opposed removing anything they have done but ultimately for the end user I want them to see a mix of their original contact entity plus my changes. Is it best I simply create a new unmanaged solution, add their existing contact entity and make changes that way? Or do I start afresh adding in the contact entity from the system layer.
If you are working with these solutions internally in your organization you should almost always use an unmanaged solution. Managed solutions are for the most part a way to box your CRM customizations in order to sell them and protect them from being changed. If this is the case you are dealing with you can probably still amend the entity but you would have to do it in the default solution or another solution - sounds like you are already going down this track. I haven't tested importing a managed solution and changing an entity customization but this is how I would expect it to work.
Yes, the best option is to create managed solutions will which will not override the existing customizations but it will add any extra customization without affecting the existing ones.
You should use managed solutions only when you want to have the feature to install or an uninstall changed you have imported.
Only if the 'Customization' field for the amended contact entity is set to true, you can directly modify the update and include your changes there. Otherwise, you can create your own managed solution that has the contact entity modifications and import it to your system. Dynamics CRM will then merge your changes with the other ones.

CRM 2011 - How to install different solutions (features) for a client of our company

We offer multiple packages with features for our clients with Microsoft Dynamics CRM.
Is there a way where we can publish our sollutions with our modifications for certain entities without overwriting the form layout that already existed.
How should we organise our sollutions so there will be no conflicts within the entities in our sollutions nor with the entities that were already modified by our clients where we want to install our sollution?
now we have to modify most entities manualy...
I hope you have some experience you want to share with us.
We broke up each section of our project into solutions. For example, entities, reports, plugins, etc.
This allowed us to deploy bits and pieces of our project as we went along (moving from dev -> test -> production).
You can't break out pieces of entities (or exclude things like the forms), but you could export the existing solution, make your changes and then re-import (as a manage or unmanaged).
There's a really good diagram here under "Conflict Resolution".

Resources