- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-08-2018 07:09 PM
Hi All,
Which is the best way to implement restricting visibility to certain records by using query business rule or read acl?
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-09-2018 06:50 AM
Hi Venkat,
I know your Question has been answered, but I would like to point out a flaw when you implement it with Query BR.
If you have a Query BR on a table that restricts access to certain records, it means
-User cannot see the Records in List/Form
-User will also be restricted to the records in GlideRecord Queries in a script as well.
User will be restricted to those records for every QUERY on the Table.
If you are in a situation where you have to restrict users from Reading Certain records from a Table in List/Form, but allow your scripts to query on the table without any restrictions, then Go for Read ACL. Because Read ACL will not restrict those records in a script that executes GlideRecord Query on the Table.
Hope this Helps.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-08-2018 07:16 PM
Depends on where the records are. If they're on a big table like the RITM or INC tables, it takes a number of ACL's for restricting access, and possible exclusions of those records on the existing ACL's for those tables. You can create a BR that runs 'Before' when the user attempts to query that table, stating that they must require some role, be part of some assignment group, etc.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-08-2018 07:26 PM
Thanks for your reply!
Will system show any performance issue if we use query business rule on a big table when we have more number of records?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-08-2018 07:31 PM
It's before the user attempts to query, so it won't have an impact on performance. It's stating that before the user even attempts to query for those records, they must meet a specific set criteria that you defined in your BR.
Let me know if this answers your question by marking it correct.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-09-2018 06:50 AM
Hi Venkat,
I know your Question has been answered, but I would like to point out a flaw when you implement it with Query BR.
If you have a Query BR on a table that restricts access to certain records, it means
-User cannot see the Records in List/Form
-User will also be restricted to the records in GlideRecord Queries in a script as well.
User will be restricted to those records for every QUERY on the Table.
If you are in a situation where you have to restrict users from Reading Certain records from a Table in List/Form, but allow your scripts to query on the table without any restrictions, then Go for Read ACL. Because Read ACL will not restrict those records in a script that executes GlideRecord Query on the Table.
Hope this Helps.