Saturday, 10 December 2011

Business Closures in MS Dynamics CRM

We had an incident last week, where a user complained of not being able to create business closures, specifically of a business closure for Christmas. When we had a look at the system, the business closure was there. Since there was a bit of lag between the incident being raised and it getting to us, we simply closed it assuming that it was a temporary glitch, the eternal hope of the support professional (I use professional in the loosest sense of the word), alas it wasn’t.

The incident came back and this is when we realized that there is no way of telling when or by whom had a business closure been created. A scan of the database tables did not help and then I had a flash of inspiration so looked at the calendarbase table and sure enough there is a calendar whose name is 'Business Closure Calendar' and each business closure is a calendarrule linked to this calendar, which means that you can use this query to retrieve any information about all business closures:
Select * from calendarrule where calendarid in (select calendarid from calendar where name='Business Closure Calendar')
This allowed us to discover a design fault in the security roles that allows one type of users to create them but crucially not the right type, god knows how it was missed during system testing.

I just had a look at one of our development boxes and this also applies to MS Dynamics CRM 2011.

No comments:

Post a Comment