Query business rule is being executed multiple times

sreedharkaliset
Mega Expert

Hi All,

I have written a query business to restrict record access based on few conditions. While testing, i found that business rule is being executed multiple times for a single incident record. Could you please help me understand why.

Regards,

Sreedhar

1 ACCEPTED SOLUTION

Example: I load an Incident Form.

The before Query Incident Business rule runs 3 times:

  • One for the current Incident
  • One for the Major Incident related list
  • One for a display business rule that queries incident

Output of each query:

find_real_file.png

Display Business Rule

find_real_file.png

Related List

find_real_file.png

Each time the system runs .query() on Incident, the before query rule runs to append any queries you have added or removed from the Before query rule.

See what happens if I add "active=true" to my Incident Before Query rule:

find_real_file.png

find_real_file.png

Active=true is now appended to all queries on the Incident Table.

This is how before Query rules are used.

 P.S. Conditions on fields don't work on these rules, as it isn't running on a record but on a table query.

That is the fundamental mindset shift.


ServiceNow Nerd
ServiceNow Developer MVP 2020-2022
ServiceNow Community MVP 2019-2022

View solution in original post

18 REPLIES 18

Example: I load an Incident Form.

The before Query Incident Business rule runs 3 times:

  • One for the current Incident
  • One for the Major Incident related list
  • One for a display business rule that queries incident

Output of each query:

find_real_file.png

Display Business Rule

find_real_file.png

Related List

find_real_file.png

Each time the system runs .query() on Incident, the before query rule runs to append any queries you have added or removed from the Before query rule.

See what happens if I add "active=true" to my Incident Before Query rule:

find_real_file.png

find_real_file.png

Active=true is now appended to all queries on the Incident Table.

This is how before Query rules are used.

 P.S. Conditions on fields don't work on these rules, as it isn't running on a record but on a table query.

That is the fundamental mindset shift.


ServiceNow Nerd
ServiceNow Developer MVP 2020-2022
ServiceNow Community MVP 2019-2022

Hi Paul,

Is there a significance to order in case of a before query business rule?

 

Hi Paul,

Thanks for the explanation.

In my instance, I could see addInfomessages being displayed almost 50 times when I open an incident. Please let me know if there could be any performance issues.

Regards,

Sreedhar

SaschaWildgrube
ServiceNow Employee
ServiceNow Employee

To identify the business rules and flows that run on a record when inserting, updating, deleting, displaying or querying the record the DevTools' WhatRuns button comes in handy.

As the name suggests it shows you what runs on a record (including business rules on parent tables).

DevTools contains a truckload of re-usable functions and features for developers.

Fork at will:

https://github.com/saschawildgrube/servicenow-devtools