Managing resources is one of the critical activities in running your business. And one of the critical aspects of managing resources is to manage resource schedules. Microsoft Dynamics CRM provides a powerful tool for managing resource schedules for your whole enterprise. There are two aspects of managing schedules: creating schedules and viewing schedules. In this article, I will focus on viewing part. I hope to focus on creating schedules (scheduling) part in my next article.
The first thing to keep in mind is that Microsoft Dynamics CRM operates internally in UTC time while interfaces with any user in the user’s default time zone time that is set in the “Set Personal Options” dialog (Tools-> Options…). For an introduction to this topic, please refer to http://blogs.msdn.com/crm/archive/2007/05/22/date-time-values-in-microsoft-dynamics-crm.aspx. Resources (people and equipment) in an enterprise can be located at different time zones and have their schedules originally created according to different time zones. Users with different time zone settings will see schedules with different time value. So be aware of your time zone setting when you view schedules of resources located at different time zones.
Currently there are three places in Microsoft Dynamics CRM that you can view schedules for different purposes. I will go over them all one at a time.
The first place is in Settings area when you are working with individual resources: Settings -> Administration -> Users, Settings -> Business Management -> Facilities / Equipment. See following figure for a visual reference.
The main purpose of this area is to set up a resource’s work schedule. For the purpose of viewing schedules, you will be able to see each individual resource’s regular work hours, time off schedules and holiday schedules on this page one resource at a time. From here you will be able to access other features that allow you to modify schedules for individual resources, which is part of the scheduling feature of Microsoft Dynamics CRM.
The second place where you can view schedules is in the Workplace area: Workplace -> Calendar. See following figure for a visual reference.
The main purpose of this area is to list your own schedule for a particular time frame (a day, a week or a month). You will be able to see all appointments / service activities that you are a part of, in addition to time off schedules and holiday schedules you can view in place #1.
The third place is in the Service area: Service -> Service Calendar. See following two figures for a visual reference.
This is like a combination of the above two features. Here you will be able to see in one place all appointments / service activities, time off schedules and holiday schedules for all resources that you have access permissions to. The scope of resources and the type of schedules you are viewing is controlled by the Type / View selector on the page. You also have control of the time frame in which you wish to see the schedules, just as in place #2.
That covers the features in Microsoft Dynamics CRM where you can view schedules of resources in you enterprise. You choose which feature to use to view which schedules depending on what you want to see. Here is a summary of comparison between them in a tabular format:
I hope you enjoyed reading this and it will help in your successfully using Microsoft Dynamics CRM to manage your enterprise resources. Please let me know any of your feedback on this article and these features. Thank you and see you until next time.
PingBack from http://www.travel-hilarity.com/airline_travel/?p=2279
Is it possible to synchronize the service calendar with default calendar in Outlook?
I understand this not to be possible in CRM 3.0 and am wondering if this has been now made possible in CRM 4.0 with out having to customize.
In my system any function of the year is generating the following error:
Microsoft CRM Error Report:
An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception of type 'System.Web.HttpUnhandledException' was thrown.
[InvalidOperationException: Relative recurrence generated an interval that is not contained by the scope.]
at Microsoft.Crm.Scheduling.RelativeRecurrenceRule.Expand(TimeIntervalCollection scopes)
at Microsoft.Crm.Scheduling.Engine.LeafCalendarRule.ExpandRecurrence(TimeIntervalCollection effectiveScopeIntervals, TimeIntervalCollection instanceIntervals, TimeZone timeZone)
at Microsoft.Crm.Scheduling.Engine.CalendarRule.Expand(TimeIntervalCollection processedIntervals, TimeIntervalCollection scopeIntervals, TimeIntervalCollection instanceIntervals, Int32 fallbackTimeZoneCode, SchedulingContext context)
at Microsoft.Crm.Scheduling.Engine.Calendar.ExpandSubCalendar(TimeIntervalCollection processedIntervals, TimeIntervalCollection scopeIntervals, TimeIntervalCollection instanceIntervals, Int32 fallbackTimeZoneCode, SchedulingContext context)
at Microsoft.Crm.Scheduling.Engine.NestedCalendarRule.InternalExpand(TimeIntervalCollection processedIntervals, TimeIntervalCollection effectiveScope, TimeIntervalCollection recurrenceIntervals, Int32 effectiveTimeZoneCode, SchedulingContext context)
at Microsoft.Crm.Scheduling.Engine.Calendar.Expand(TimeIntervalCollection scopeIntervals, Int32 fallbackTimeZoneCode, SchedulingContext context)
at Microsoft.Crm.Scheduling.Engine.Calendar.Expand(TimeInterval scopeInterval, SchedulingContext context)
at Microsoft.Crm.Scheduling.CalendarExpandCommand.Execute(ISchedulingExecutionContext context)
at Microsoft.Crm.ObjectModel.CalendarService.Expand(Guid calendarId, DateTime start, DateTime end, ExecutionContext context)
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture)
at System.Web.Services.Protocols.LogicalMethodInfo.Invoke(Object target, Object values)
at Microsoft.Crm.Extensibility.InternalOperationPlugin.Execute(IPluginExecutionContext context)
at Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context)
at Microsoft.Crm.Extensibility.Pipeline.Execute(PipelineExecutionContext context)
at Microsoft.Crm.Extensibility.MessageProcessor.Execute(PipelineExecutionContext context)
at Microsoft.Crm.Extensibility.InternalMessageDispatcher.Execute(PipelineExecutionContext context)
at Microsoft.Crm.Extensibility.ExternalMessageDispatcher.Execute(String messageName, Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, PropertyBag fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
at Microsoft.Crm.Sdk.RequestBase.Process(Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
at Microsoft.Crm.Sdk.RequestBase.Process(CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
at Microsoft.Crm.Sdk.CrmServiceInternal.Execute(RequestBase request, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
at Microsoft.Crm.Sdk.InProcessCrmService.Execute(Object request)
at Microsoft.Crm.Application.Platform.Calendar.Expand(TimeInterval interval)
at Microsoft.Crm.Web.Calendar.CalendarPageHelper.ExpandCalendar(DateTime startDate, DateTime endDate, Calendar calendar)
at Microsoft.Crm.Application.Controls.AppUIPage.OnPreRender(EventArgs e)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
[HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown.]
at System.Web.UI.Page.HandleError(Exception e)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at ASP.supridados_prontonet_calendar_week_aspx.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
How do I resolve.?
This was really a nice article.It would be really great if you can write an article about creating schedule.
Or could post a link to already written article.
I will really appreciate your efforts.
i need to retrieve work hours associated with equipment or system user through query or any function provided by MS CRM web services.
I'm also interested in querying of user's schedule on certain date using CRM web service. Does anyone have the solution? Should I query calendarrule entity?
Is it possible to customise the service calendar? For external stakeholder management, I want the service calendar to list in addition to users and resources, accounts and contacts so that our large public sector organization can answer questions like
- who are our VIP contacts in the health sector we have not seen in the past three months?
- is anyone from our organization due to visit the CEO of XYZ this month?