ColumnSet, Workflows and My Overstuffed Audit History
The following is the devil. You heard it here first.
Listen, I’m a lazy programmer. I accept this about myself. I get that it’s really easy to instantiate a new ColumnSet and pass in true so you get all the columns when you query CRM. You don’t have to worry about a lot of typing and you have everything there you need…
Life is perfect… until it comes time to Update the entity that you retrieved and you check your Audit History. See, the problem is when you pull back all of the columns in an Entity and then call Update, Microsoft CRM isn’t smart enough to know which values changed and which ones didn’t. So if you pull back every column and call Update, CRM records that every column got updated. Even if you only changed (or added) a single value.
That’s not exactly ideal.