I am using Dynamics 365 on-premises 8.2.2.112.
I have a managed solution that includes a modified version of the default site map. The modified site map contains all five default areas unchanged (Sales, Service, Marketing, Settings, Training) and also three new custom areas. When I import that solution to another organization, I have observed the following behavior.
- Modifications made in the target organization on the five default areas are not affected (this is good)
- Custom areas made in the target organization are not affected (this is good)
- The positions of the new areas after the import appears random (this is bad)
Here's the case: In my source organization I have the following areas in the following order:
New Area 1 (NA1), New Area 2 (NA2), New Area 3 (NA3), Sales (SAL), Service (SER), Marketing (MAR), Settings (SET), Training (TRA)
In the target organization I have the following areas in the following order:
Custom Area (CUS), SAL, SET, SER, MAR, TRA
After I import the solution that contains the sitemap, I get the following areas in the following order:
CUS, NA1, SAL, NA2, SET, NA3, SER, MAR, TRA
What I would want is that the new areas contained in the solution would be in the beginning, so the result should look like this:
NA1, NA2, NA3, CUS, SAL, SET, SER, MAR, TRA
Does anyone have any idea how I could affect the order of the areas after the import? Also, I would very much like to know how the order is determined.
As a curiosity, I experimented on what would happen if the site map contained in the solution would have only the new areas and none of the five default areas. After the import it appeared that all the default areas that were not modified disappeared, but all modified default areas remained unchanged.
Is there any factual information available on what exactly happens to the default site map when a new one is imported? What is the exact logic it uses to determine should something be overridden, ignored or merged with existing elements?
Are there any better ways to achieve what I'm trying to do? I am under the impression that switching between Apps is rather inconvenient in on-premises environments at the moment, so I don't think an App is the way to go here.
*This post is locked for comments
An excellent answer. Thank you.
Good Afternoon,
.
In short: https://msdn.microsoft.com/en-us/library/gg309329.aspx#BKMK_MergingNavigationCustomizations
.
For details:
"How to effect ordering after import"? You have to customize again - in case you have local changes in the target too - after the merge. Either in CRM, or by exporting an unmanaged solution from the target instance (with a sitemap containing now all areas), reordering the XML (manually, or with 3rd party), and then reimport it.
.
"How order is determined?" For this, you need to know about two things:
A) Layering in CRM. First comes the system solution, then managed solutions ordered by import date, and then unmanaged customization on top.
B) Sitemap behaviour in a managed solution. Even though, if during import you choose "overwrite customization", sitemap (and forms) will not overwrite local changes. On the other hand, a managed solution contains the "ordinalvalue" tag for the Areas in a site map, telling the ordering of them.
So, when you import your solution:
.
".. what is the logic to determine (..) if overriden, ignored, ..." For this, you have to only know about one more thing: Sitemap behaviour in managed solutions. Managed solution only contains what really was changed with the solution itself. In the customization.XML, you can see this with the tag "solutionactiontype", and you can read more about it here: https://blogs.msdn.microsoft.com/crm/
.
Best regards
Stay up to date on forum activity by subscribing. You can also customize your in-app and email Notification settings across all subscriptions.
André Arnaud de Cal... 291,240 Super User 2024 Season 2
Martin Dráb 230,149 Most Valuable Professional
nmaenpaa 101,156