When a report on a Dashboard uses an Interactive Filter that has the option "Apply to both database views and tables" selected, the URL that is generated when you drill down a report will have the "filter condition" string appended multiple times.
Depending on the number of database views and report filters, this may exceed the browser limitation for URL length and produces:
- a blank page
- the following error:
This page isn't working
If the problem continues, contact the site owner.
HTTP ERROR 400
Steps to Reproduce
- Navigate to: Reports > Administration > Interactive Filters
- Create an Interactive Filter of type 'Reference' using the reference table: Company [core_company]. Save and then add the following Interactive Filter:
- Reference table: Task SLA [task_sla]
- Reference field: -Task > Company
- Make sure to select the "Apply to both database views and tables" checkbox and Save.
- Create a single score report (Note: the issue occurs for any type of reports that can be drilled down to open in a list view).
- Add the report and interactive filter to a dashboard and make the report widget follow the interactive filter (by configuring its settings in Edit mode).
- Choose a company from the interactive filter such that a score is computed.
- Click on the score to open the list view of the result
- Right click on the breadcrumb and select 'copy query'
- You will see that URL will have the same company filter condition appended to it multiple times. One for each database view on [task_sla] table (OOB there are 8 database views against [task_sla]):
The URL should not have repetitive filter condition string appended to it as this does not change the result. The recursive filter only adds to the length of the URL and sometimes exceeds browser limitation.
The filter should be generated for the database views that are available on the given dashboard and not for all the existing database views on the platform for the given table.
Since "Apply to both database views and tables" is checked, the Interactive Filter is applied to ALL Database Views against one of the Interactive Filter References defined in the Interactive Filter definition.
Some tables like [task] or [cmdb_ci] are base tables for many tables in ServiceNow. When you select one of these tables as reference for an Interactive Filter and check thr "Apply to both database views and tables" option, the filter query generated for that Interactive Filter will usually be too long.
Ideally, the filter should be generated for Database Views which are available on a given dashboard only but this is the current limitation in Interactive Filters.
The following steps could be used as a workaround:
- Identify the reports based on Database Views in a dashboard. If there is no report based on view then uncheck the "Apply to both database views and tables" option.
- If there are reports based on Database Views, identify the views, add them as Interactive Filter Reference in the Interactive Filter definition, and then uncheck the "Apply to both database views and tables" option.
Related Problem: PRB1321988