Our Requirement is to remove all finance-related fields in the transactions for certain roles. So they should not view these fields in transaction Records, Lists, Dashboard, Searches, Reminders, and Reports, etc. These fields can be made hidden to the roles (except admin) by customizing the forms and setting that form as the preferred one for the selected roles and also set the same preference under the “Forms” set up of the user roles. Some fields cannot be removed directly from the form so we can use User Event Script to achieve this.
When a user tries to view the list of transactions it is possible to customize the view and save that new search/Preview. Also, they can see the finance-related fields in the default view. So here we have to restrict both possibilities.
In the User role setup, Netsuite allows us to set a single search as restricted in List/Dashboard/Sublist to the role. But there are cases where that role may need to have more than one search available to view.

(Note: If we remove search permissions completely it will affect scripts when we try to create searches.)
So a simple workaround:
- Without removing the search permissions for the roles, to add one search as List view and search form as shown above; This search is an replica of the general UI view which don’t have finance-related columns.
- All the unnecessary searches can be made as private to avoid them to appear in the Dashbord on portlets.
- In all the searches (including the one which is restricted as list view) add a custom field that has run level permission fo all roles except admin.

- Other searches can be set as reminders to the roles.
Create a “private” search. Then include this custom field as one of the criteria. Check the “available as reminders” and “available as dashboard” checkbox and then select the audience and roles.
By doing this the user cannot customize the view of the search result if he tries to do it error will be thrown out as shown below.