locked
Change the Time Zone for all users RRS feed

  • Question

  • Hello,

    Does have the CRM 2011 Online, an option to change the Time Zone for all users ?

    I need this because I have many users accessing the CRM, and using a wrong Time Zone. To do this change,  I don't want to ask for them (one-by-one) to change the Time Zone settings.

    PS: all users are accessing the CRM Online just from one time zone.

    Thanks

    Marcos

    Monday, July 25, 2011 8:02 PM

Answers

  • Yes, that is correct.  I think for non-global operations it would be a nice future add to allow an admin to enforce a specific timezone for everyone or for a group, team or business unit.

    This just isn't there yet.  If you have found this helpful please come back and mark the posts that you thought were helpful as such and also mark the proposed answer by myself as the answer with the mark as answer button.

     

    Thanks!


    Jamie Miley
    Check out my about.me profile!
    http://mileyja.blogspot.com
    Linked-In Profile
    Follow Me on Twitter!
    • Proposed as answer by Ankush Grover Tuesday, July 26, 2011 11:49 AM
    • Marked as answer by Jim Glass Jr Tuesday, July 26, 2011 3:52 PM
    Tuesday, July 26, 2011 3:15 AM
    Moderator
  • Wayne and Jamie, few moments after to send the prior post, another colleague from Brazil helped me to solve this issue.

    Anyway, thanks for the answers!

    Tuesday, July 26, 2011 1:00 PM
  • Changing the time zone for CRM user accounts is a very simple process, thanks to the excellent CRM 2011 User Settings Utility by Amreek Singh. I install this solution to all the customer environments, as it provides centralized administration to several other important user account settings in addition to the time zone. Download the free solution from CodePlex and import it into your CRM Online organization:

    http://crm2011usersettings.codeplex.com/


    Jukka Niiranen - My blog: Surviving CRM - Follow @jukkan on Twitter

    Saturday, May 25, 2013 10:10 PM

All replies

  • No, there is no way to set this for all users at once in CRM Online, to my knowledge. In OnPrem, you could update the User table and force the time zone, but I know of no such option outside of the user settings.
    The postings on this site are solely my own and do not represent or constitute Hitachi Consulting's positions, views, strategies or opinions.
    Monday, July 25, 2011 8:52 PM
  • OK Wayne.

    Do you know what's the necessary role or permission for the user to change this setting by yourself?

    Marcos

    Monday, July 25, 2011 9:06 PM
  • What Wayne suggests isn't supported technically on on-prem and isn't possible in CRM Online as you do not have direct access to the database.

    The reason this setting doesn't exist is that the system is scalable to work with global operations where people might be working in the same CRM organization but on different sides of the globe.  So this is intended funtionalilty.

     


    Jamie Miley
    Check out my about.me profile!
    http://mileyja.blogspot.com
    Linked-In Profile
    Follow Me on Twitter!
    Monday, July 25, 2011 9:14 PM
    Moderator
  • You just have to log in as that user.  It's the only way.
    The postings on this site are solely my own and do not represent or constitute Hitachi Consulting's positions, views, strategies or opinions.
    • Proposed as answer by Ankush Grover Tuesday, July 26, 2011 12:05 PM
    Monday, July 25, 2011 9:36 PM
  • Yes, that is correct.  I think for non-global operations it would be a nice future add to allow an admin to enforce a specific timezone for everyone or for a group, team or business unit.

    This just isn't there yet.  If you have found this helpful please come back and mark the posts that you thought were helpful as such and also mark the proposed answer by myself as the answer with the mark as answer button.

     

    Thanks!


    Jamie Miley
    Check out my about.me profile!
    http://mileyja.blogspot.com
    Linked-In Profile
    Follow Me on Twitter!
    • Proposed as answer by Ankush Grover Tuesday, July 26, 2011 11:49 AM
    • Marked as answer by Jim Glass Jr Tuesday, July 26, 2011 3:52 PM
    Tuesday, July 26, 2011 3:15 AM
    Moderator
  • I know that in the CRM Online I don't have any way to access the database and as Wayne said, the only way to set the Time Zone is to log in on the CRM. It's clear for me, but I have another problem.

    All personal settings, accessed through the menu (File -> Options -> General Tab) are disabled for the common users and I don't know what's the role or permission which the user must have for enable this settings and then to set by yourself.

    Marcos

    Tuesday, July 26, 2011 12:30 PM
  • Wayne and Jamie, few moments after to send the prior post, another colleague from Brazil helped me to solve this issue.

    Anyway, thanks for the answers!

    Tuesday, July 26, 2011 1:00 PM
  • I made a custom workflow activity (MS-CRM 4.0) looking like this (didn't bother to make a nice pick list, just enter the timezonecode as paramet

    using System;

    using System.Workflow.ComponentModel;
    using System.Workflow.ComponentModel.Design;
    using System.Workflow.ComponentModel.Compiler;
    using System.Workflow.Activities;

    using Microsoft.Crm.Workflow;
    using Microsoft.Crm.Sdk;
    using Microsoft.Crm.SdkTypeProxy;
    using Microsoft.Crm.Sdk.Query;

    namespace customactivities
    {
      
        [CrmWorkflowActivity("Update Users Time Zone", "Custom Activities")]
        public partial class SetUsersTimeZone : SequenceActivity
        {
            protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
            {
                try
                {
                    // get the context service
                    IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService));
                    IWorkflowContext context = contextService.Context;
                    ICrmService crmService = context.CreateCrmService();

                    // Check caller is a user
                    if (context.PrimaryEntityName.ToLower() != EntityName.systemuser.ToString().ToLower())
                        return ActivityExecutionStatus.Closed;
                   
                    // Now do the job
                    SetTimeZone(crmService, context);
                   
                    crmService.Dispose();
                    return ActivityExecutionStatus.Closed;
                }
                catch (Exception ex)
                {
                    throw new InvalidPluginExecutionException("An error occurred in SetUsersTimeZone (execute)", ex);
                }

            }

            private void SetTimeZone(ICrmService crmService, IWorkflowContext context)
            {
                try
                {
                    RetrieveUserSettingsSystemUserRequest request = new RetrieveUserSettingsSystemUserRequest();
                    request.ColumnSet = new AllColumns();
                    request.EntityId = context.PrimaryEntityId;
                    request.ReturnDynamicEntities = true;

                    RetrieveUserSettingsSystemUserResponse response = (RetrieveUserSettingsSystemUserResponse)crmService.Execute(request);
                    if (response == null) return;
                    if (response.BusinessEntity == null) return;
                   
                    DynamicEntity settings = (DynamicEntity)response.BusinessEntity;

                    CrmNumber itimezone = new CrmNumber();
                    itimezone.Value = this.TimeZone.Value;
                    CrmNumberProperty ptimezone = CrmTypes.CreateCrmNumberProperty("timezonecode", itimezone);
                    settings.Properties.Add(ptimezone);

                    UpdateUserSettingsSystemUserRequest update = new UpdateUserSettingsSystemUserRequest();
                    update.Settings = settings;
                    update.UserId = context.PrimaryEntityId;
                    crmService.Execute(update);
                }
                catch (Exception ex)
                {
                    throw new InvalidPluginExecutionException("An error occurred in SetUsersTimeZone (SetTimeZone)", ex);
                }
            }

            // Define the dependency properties

            public static DependencyProperty TimeZoneProperty =
                DependencyProperty.Register("TimeZone", typeof(CrmNumber), typeof(SetUsersTimeZone));

            [CrmInput("Time Zone Number")] // See table!!
                [ValidationOption(ValidationOption.Required)]
            public CrmNumber TimeZone
            {
                get
                {
                    return (CrmNumber)base.GetValue(TimeZoneProperty);
                }
                set
                {
                    base.SetValue(TimeZoneProperty, value);
                }
            }

        }
    }


    Per

    Friday, May 24, 2013 10:28 PM
  • Changing the time zone for CRM user accounts is a very simple process, thanks to the excellent CRM 2011 User Settings Utility by Amreek Singh. I install this solution to all the customer environments, as it provides centralized administration to several other important user account settings in addition to the time zone. Download the free solution from CodePlex and import it into your CRM Online organization:

    http://crm2011usersettings.codeplex.com/


    Jukka Niiranen - My blog: Surviving CRM - Follow @jukkan on Twitter

    Saturday, May 25, 2013 10:10 PM