I understand the following:
- Custom Report Types must use the Role Hierarchy
- Reports using Role Hierarchy show all records below the current Role
- Sharing Rules allow records to be shared with roles outside of their hierarchy
Our environment's current setup is Admin
and Executive
as siblings at the top with Executive
having several children, grandchildren, etc. We have also setup our sharing rules so that every record owned by a user in any role is shared with every user in any other role.
Where my question really comes in is... Do custom report types respect sharing rules? Will a custom report type allow a user in Admin
to view records under the Executive
hierarchy if sharing rules are configured to do so? It seems related this questionquestion, but there is no definitive answer on there of whether or not reports respecting sharing rules or not.
The problem:
We have a custom report type displaying opportunities with a custom relationship. I'm trying to assist with building a report for a user and noticing some of the records (owned by an Admin) are not displaying for the user. This results in records a user can view - through all means: list views, layouts, apis - not being displayed in a report.
I want the user to be able to view the records even though they are outside of their role hierarchy. Does this mean we need to rebuild our hierarchy with 1 role at the top? If so, should our hierarchy be 1 role because we don't want to prevent users from running reports with data owned by users above them in the hierarchy, or are users allowed to go to parent hierarchies by clicking through the Role Hierarchy on the report?
Misdirection?
I always assumed reports using Role Hierarchy respected sharing rules - this concept makes sense to me because if a user has access to view the record, there is no reason to exclude it from a report. I also noticed using the standard activities report and saving the role hierarchy at the top in a split hierarchy like ours, I can view activities created by users outside of the admin
hierarchy. Again, I would assume this would translate to the custom report types.
Walk-thru
As an admin, I run my report. I've added a filter for a specific opportunity ID to make it easier to identify for this example. I am set at the top of our Hierarchy Admin
.
I then look at that specific records Sharing Settings. I've highlighted the record ID as well as the user I'm going to login as.
As the user, I run the report again; this time in the Executives
role. As mentioned above, the Executives
role is a sibling of Admin
and also at the top. You'll notice the record does not appear.
Finally, as the user, I go to the specific record. You'll notice the record is visible. Also, the field Associate
is visible - this is a custom field and why we made the custom report. We wanted to display information from this parent record on the opportunity report.