Our organization has gone through restructuring recently, so we need to rename and restructure role hierarchy. What is the best practice for renaming role and restructure hierarchy and also what are all key factors to consider before making any change? Please advise on any suggestions or process.
Salesforce provides a good bit of detail on preparing for a large-scale sharing change. The key factors are
- Testing in a sandbox first
- Establish a maintenance window in production.
- Activate Deferred Sharing Calculations and optionally Parallel Sharing Recalculation.
- Execute all changes in a single operation.
- Validate results
This is how I would approach based on information you provided.
- stand up a full Sandbox and complete your changes
- Observe if those changes are successfully executed within acceptable amount of time. If all good, you read. If not, follow-on.
- Enable Deferred Sharing
- Perform above steps and observe the process completion time. Note the time needed to carve out from Maintenance Window. Other research needed based on (a) Error (b) Performance issue and (c) following fundamentals
Keep in mind these fundamentals.
- Group Maintenance Table
- Deferred Sharing Maintenance: (a) Switch Off Group Maintenance. (b) Admin changes to Hierarchy & other Sharing (C) Switch on Group Maintenace
- Parallel Sharing : At a glance this could work, but still not recommended for your scenario.
- Granular Locking : this doesn't seems to be useful because you are chaning your entire Hierarchy
Few facts to note while you work on these because this could be an easy task for simple emvironment or it could be a daunting task for a large complex environment.
- Total Users assigned to Role Hierarchy
- Number of Role/Node in Role Hierarchy
- Number of Public Group
- Number of Sharing Rule
- Number of Other Sharing Architecture : Manual, Apex Managed, and other
- Number of OWD set to Private or Read Only
- Is Territory Hierarchy enabled/used, if used then what is the size?
- How does your daily off hour compute resource provided for your Org looks like. e.g. do you have lot of batch or other processing working everyday. If you have some empty time slots, that would be ideal time.
When your process start, keep in mind that following things will happen behind the scene. - Group Maintenance Table will be locked and processed to reflect the Hierarchy changes. - User might see performance, record lock, sharing and other issues, if not executed properly.