How to hide child table (Inc) choice values from parent table (Task) filters based on user region

santhoshini2
Tera Contributor

Hi Community,

I’m looking for suggestions or best practices for handling choice value visibility between parent and child tables.

Scenario:

  • Task is the parent table

  • Incident is a child table

  • Both share the State field, but each table has its own choice values

Example:

  • Task → State choices: Open, In Progress

  • Incident → State choices: Received, Awaiting Info

Issue:
When creating list filters or report filters on the Task table, the Incident-specific state choices (Received, Awaiting Info) are also visible. This is confusing for users who only work with Task-level data.

Requirement:
For users belonging to a specific region (say XYZ region😞

  • They should only see Task-level state choices in Task list & report filters

  • They should not see Incident-specific state choices in the parent table filters

Question:
Is there any recommended or supported approach to:

  • Hide child table choice values from parent table filters?

  • Apply this behavior conditionally based on user attributes like region?

I’d appreciate any guidance around configuration, limitations, or possible workarounds (best practices preferred).

Thanks in advance for your help!

5 REPLIES 5

Tehreemm
Tera Contributor

 

Hi @santhoshini2 
There is no fully supported way in ServiceNow to “hide” child table choice values from the parent table filters, because choice lists are inherited across the table hierarchy. The recommended best practice is to manage choice visibility through dictionary overrides, sys_class_name filtering, or role/region‑based UI policies rather than trying to suppress values globally.
 
Why This Happens
  • Shared field inheritance: The State field is defined on the parent table (Task). Any child table (e.g., Incident) that adds its own choices extends the parent’s choice list.
  • Filters/reports behaviour: When filtering on the parent table, ServiceNow shows all possible values across the hierarchy, including child‑specific ones. This is expected platform behaviour.
 
Best Practices & Options
1. Dictionary Overrides
  • Create dictionary overrides for the State field on child tables (Incident, Problem, etc.).
  • This allows each child table to have its own choice list without polluting the parent’s filter view.
  • Limitation: Overrides affect the field at the form level, but filters/reports on the parent table may still show all values.
2. sys_class_name Filtering
  • Use the sys_class_name field to restrict filters/reports to only parent table records.
  • Example: Add a condition sys_class_name = task in reports or list views to exclude child table records.
  • This prevents child‑specific choices from appearing when users are working with Task‑only data.
3.Role/Region‑Based UI Policies
  • Apply UI policies or client scripts to conditionally hide or restrict choice values based on user attributes (e.g., region, role).
  • For XYZ region users, you can script the filter widget to only display Task‑level states.
  • Limitation: This requires customization and careful testing to avoid breaking OOTB behavior.
4. Reporting Best Practice
  • Instead of filtering directly on Task, build separate reports/dashboards scoped to each table (Task vs Incident).
  • This avoids confusion and ensures users only see relevant state
In short: You cannot natively hide child table choices from parent filters in ServiceNow. The supported best practice is to use dictionary overrides and sys_class_name filtering, with optional UI policies for region‑based visibility.

Here are Few KB articles from ServiceNow for help:
How to hide extended-table records from base-table list views - Support and Troubleshooting

If My response helped you in anyway do mark it helpful...

Regards,TZ