Contact Us Today!

Editing Your Solution’s customizations.xml File from D365 v9.0

Editing Your Solution’s customizations.xml File from D365 v9.0

Have you had your recent dose of potassium yet? If you haven't seen the new look and feel of Dynamics 365 version 9.0, code named Potassium, let me give you a few highlights:

  • New User Interface with laffess white space, uniform spacing, field controls styling, better font standardization, and theming capabilities.
  • Virtual entities that can pull data from an external data source.  WOW!
  • And one of my personal favorites: Multi-select option sets.  Yes, multi-select!  😀

If you're like me, you'll also benefit from the enhanced features and capabilities of the App and Site Map Designer, things that you may have had to do in the past by editing the customizations.xml file from your solution export.

Editing the customizations.xml file can be painful at times and when you make changes, import your changes, and notice that your changes didn't take, it becomes even MORE painful to try to troubleshoot.

It seems that a new variable has been added to the customizations.xml file in D365 version 9.0 at both the Entity level as well as the Attribute level called unmodified.

When you export your solution, it automatically sets the variable for unmodified = 1 (unmodified = true meaning it is unmodified). If you are changing your XML file, then you need to manually change the flag to 0 (unmodified = false meaning it has been modified) at both the entity level AND at the attribute level.

If you don't change this flag, then you will import your solution back into D365 with your edited customizations.xml file and D365 will completely ignore your modifications. You could rack your brain for HOURS trying different things such as changing your publisher, adding other components to your solution, exporting it as a managed solution, and so on!

Once you change the flag in all of the necessary places you just have to save your customization.xml file and reimport your solution. Once you publish your changes, the change you made will take effect. If you were to export your same solution again, you would see these flags both set back to 1, even though in the solution that you imported, they were set to 0.

Here was the scenario that I was doing where I came across this. On the Email entity I wanted to lock down the From field to only look up Users and not Queues. Within the From attribute, I wanted to change the lookup types element from this:

<LookupTypes>
<LookupType id="00000000-0000-0000-0000-000000000000">8</LookupType>
<LookupType id="00000000-0000-0000-0000-000000000000">2020</LookupType>
</LookupTypes>

to this:

<LookupTypes>
<LookupType id="00000000-0000-0000-0000-000000000000">8</LookupType>
</LookupTypes>

I created a solution that contained the Email entity and the only asset I added to the solution was the From field so my solution was very light. Then, I exported my solution, unzipped my file, updated the customizations.xml file with the change above, zipped my file, and imported it back into D365. Unfortunately, I spent a few hours trying to figure out why my change wasn't taking effect. When I was close to needing to take a break from it, I noticed the unmodified option on the Entity as well as on the Attribute. I changed the flag on the Attribute to 0 and imported my solution but it still failed. I tried one last time and changed it on both the Entity and the Attribute level and voila! Magic!

I'm very excited about v9.0, as are a lot of customers. We are patiently awaiting Microsoft to allow the upgrades to commence. When they do, you'll fall in love with D365 all over again!

If you have questions please do not hesitate to contact us at 800.796.4854.

Beringer Technology Group, a leading Microsoft Gold Certified Partner specializing in Microsoft Dynamics 365 and CRM for Distribution. We also provide expert Managed IT ServicesBackup and Disaster RecoveryCloud Based Computing and Unified Communication Systems.


theProfessor

theProfessor

Rob is the CTO of Beringer Technology Group, and focuses his efforts on software development, cloud engineering, team mentoring and strategic technical direction. Rob has worked with Beringer since 2005, and has influenced every department from Development, Security, Implementation, Support and Sales. Rob graduated with his MBA from Rowan University in 2012, earned his Bachelors of Computer Science in 1997, and is current with several Microsoft technical certifications. Rob is very active, and loves to mountain bike, weight train, cook and hike with his dog pack.