Today I had to tidy up a few entity customizations. In the process, I found out that one entity kept throwing an error when creating new record. It kept saying that there is a field that cannot be empty. I suspected it might be the default currency field. Sure enough, after a quick investigation I confirmed it was the transactioncurrencyid field. This entity used to have a money attribute and has since been removed.
Microsoft Dynamics CRM 4.0 creates transactioncurrencyid and exchangerate attribute the first time a money attribute is created. However, if you decided to remove that money attribute, Dynamics CRM doesn’t automatically remove these system attributes. And because it’s system attributes, they cannot be removed (well, at least from the web UI).
At this point, you might thought of re-importing the backup entity customization file (if you remember to back it up in the first place), and everything will be alright. Well, surprise, surprise, re-importing old customization file doesn’t remove these fields either. Arghhhh!!!
The only workaround I know is to add a dummy no-constraint money attribute. And that is really not elegant!
If you know a solution to this annoyance, please feel free to leave a comment.
Cheers – Sy