Friday, 17 February 2012

Capacity Scheduling in MS Dynamics CRM 2011 - part 1

I’ve trying to get a better understanding of what is and isn’t possible with the service scheduling module in MS Dynamics CRM 2011.

One of our applications uses “capacity scheduling” so I’m quite happy with this concept.  I’ve not found a definition of what capacity scheduling is but Microsoft’s training material says:
In Microsoft Dynamics CRM service scheduling, two primary factors allow you to perform capacity scheduling:

• A resource required for the delivery of a service must be defined with a certain level of capacity.

• The resource selection rule for a service must be defined to require a minimum capacity level.
This is pretty meaningless and rather than try to define it myself, I will simply provide a few examples.

Trainers’r’s is a company that delivers training seminars. It has at its disposal two training classrooms in its only site, one with 15 places and another one with 30 places.  Its training seminars are delivered by a trainer, because Trainers'r's uses Dynamics CRM for various other things, the trainers are system users. This does not has to be the case but in this example it means that a few users in the system  are needed. It is advisable to set the Work Hours for these users.

First, let's set up two facilities, their work hours and capacity. I've called my facilities Small Classroom
and Large Classroom.
  1. Navigate to Settings | Business Management | Facilities/Equipment.
  2. Click New.
  3. Fill in Name: Small Classroom.
  4. Click Save.
  5. Click Work Hours.
  6. Double click All Day on today's date.
  7. Select From today's date onward and click ok.
  8. Set the weekly schedule.
  9. Double click on the highlighted area to set the working hours and capacity.
  10. Click OK.
  11. Click Save and Close, twice.
Repeat the above steps for Large Classroom. Make sure that you set capacity to 30.

Let's now set up two services two cater for a small training seminar, up to 15 people, imaginatively called Small Training Seminar and another one for bigger groups of up to 30 people, called Large Training Seminar.
  1. Navigate to Settings | Business Management | Services.
  2. Click New.
  3. Fill in Name: Small Training Seminar.
  4. Set Default Duration to: 4 hours.
  5. Set Start Activities Every to: 30 minutes.
  6. Set  Beginning At : 8:00 AM.
  7. On Required Resources Double Click Selection as per screenshot below:
  8. Set Quantity to 2, Selection Criteria to Least Busy.
  9. Click OK.
  10. Click on Selection Rule, Set Selection Criteria to Least Busy and Capacity Required to 15. This selection rule will be the Classroom Selection Rule.
  11. Click on Resources to add the Small Classroom Facility.

  12. We have a facility now lets add a Trainer. Back on the Service screen on the Required Resources section Click Add a Selection Rule, which will pop a window up.
  13. Set the Selection Criteria to Least Busy. Leave the rest to default.
  14. Select the newly created Selection Rule and double click Resource Groups.
  15. Click New to Create a New Resource Group.
  16. Name it Trainers and click Save.
  17. Click Resources | Add Resources.
  18. Add Your Users to the Resource Group.
  19. You can now select the Trainers Resource Group.
  20. You should now have the following selection rules:
  21. Save and Close the service.
Repeat the procedure for Large Training Seminar, note that you don't need to create the Trainers resource group again and that capacity should be 30 instead of 15.

The small training seminar could also be delivered in the large training room, so that the Small Training Seminar service would look like this, which is what I will be using from here on:

You can now use these services to book service activities.  In a real world application you would probably want to create your own custom entity linked to a service activity, say TrainingSeminar, which depending on how many participants it had it would use the large or the small training seminar service.

In this example, though, the service calendar is used to manually schedule service activities:
  1. Navigate to Service | Service Calendar
  2. Click Service Activity. Fill in Subject and Select a Service.
  3. Click Schedule.
  4. Click Find Available Times.
  5. Select a Time and click Schedule.
  6. Save and Close Service Activity.
  7. Hit Refresh on the Service Calendar screen.
  8. Note how the Service Activity shows against two resources (Jane and the Large Classroom)
  9. Another Small Training seminar can be booked for Monday morning, but because the large classroom is in use no Large Training seminar can be booked for Monday morning.
It is worth noting that if you schedule a Small Training seminar for 09:00 rather than 08:00 as above, you will not be offered the possibility of booking a service activity for any of service from 08:00 till 09:00 however, a different service with a shorter duration could use that facility.  

Say for example that Trainers’r’s holds a short (30 minutes) weekly employee meeting and the company currently employees 11 employees. The administrator has set up new service called Weekly meeting.  The capacity in the selection rule is set to 11 and the possible resources are both classrooms, the service starts at 08:00 and activities start every 15 minutes.  The scheduling engine will now provide suitable appointments, which will be some on the large classroom and some on the small classroom.

In part two, I will discuss a completely different way of using Capacity Scheduling.


  1. Hi friends,

    Dynamics CRM is a server-client application, which, like Microsoft SharePoint is primarily an IIS-based web application which also supports extensive web services interfaces. Thanks a lot.....

  2. I am satisfied that you simply shared this useful information with us.
    Please stay us informed like this. Thanks for sharing.
    Hadoop Training | Microsoft Dynamics CRM Training

  3. Thanks for sharing info on Capacity Scheduling in MS Dynamics CRM 2011

  4. Wow! That's really great information guys.I know lot of new things here. Really great contribution.Thank you ...

    best online training for salesforce