Notifications and sys_overrides

vstefano
Giga Contributor

So I completed the domain separation training a few weeks back and learned all about sys_overrides etc.

I am having an issue around one concept that was taught. When you create a process override and mark it as inactive; the intended behavior is that it should not run at either the specified domain or higher level domain due to the override. It was later explained that the only way to revert from the use of the override is to delete it and that marking it as inactive essentially disables it for that domain. Is this true?

What I am running into is that we have a notification defined at global and it is active. We created an override for "Domain A". When both are active, the "Domain A" notification goes out due to the override. When I mark Domain A's notification as inactive (active unchecked), the global notification is going out.

I found a way around this but I don't know enough about what it is that I did to make it not go out and it appears to go against was was taught.

What I did was the following (within notifications on the form):

1) Added Related Lists: "Notifications->Overrides" & a few other related lists that had the overrides at the end. Really only need to worry about the Notifications override for this scenario.

        ** NOTE ** - On either record all these related lists have nothing in them.

2) Enabled the "Edit" UI Action for the related list (the Notifications->Override list)

3) Navigate to Domain A's defined notification (the override)

4) Click Edit (causing it to display all the global defined notifications), found the one that my Domain A's notification overrides and selected it.

        ** NOTE ** - After doing this, now i see the record name in the "Notifications->Overrides" and "Rules->Overrides" related lists

5) With Domain A's notification still active, I tested the conditions and the notification DID NOT go out.

If I go back and have Domain A's related lists populated and the record set as Inactive, the global goes out

If I go back and remove the records from the related lists and set active = true, the Domain A notification goes out.

If i go back and make Domain A's record Inactive with no records in the related list, global notification goes out

Again, on Domain A's notification, if related lists are populated and record is active, neither global or domain specific goes out.

* in all cases the sys_overrides field on Domain A's record is populated with the proper record (the global one that we wish to override).

To state the overall question again:

When you create a process override and mark it as inactive, the intended behavior is that it should not run at either the specified domain or higher level domain due to the override. Is this true?

1 ACCEPTED SOLUTION

markus_schaer
Tera Guru

According to the ServiceNow Domain Separation Best Practices, it is not possible to override an element and set Active=false. The system will ignore the override in this case because it is inactive. To override and deactivate, set a condition of false or sys_id | is | empty.



Therefore, the expected behavior should be:


  • Global notification active, Domain A notification active --> Domain A notification is sent
  • Global notification active, Domain A notification inactive --> global notification is sent
  • Global notification active, Domain A notification active with "false" condition --> No notification is sent


Another approach is to enhance the condition of the global Notification instead of creating an override, which leaves you with only one element to manage. This, however, strongly depends on the process.


View solution in original post

12 REPLIES 12

Good luck . ..   I look forward to the results.


markus_schaer
Tera Guru

According to the ServiceNow Domain Separation Best Practices, it is not possible to override an element and set Active=false. The system will ignore the override in this case because it is inactive. To override and deactivate, set a condition of false or sys_id | is | empty.



Therefore, the expected behavior should be:


  • Global notification active, Domain A notification active --> Domain A notification is sent
  • Global notification active, Domain A notification inactive --> global notification is sent
  • Global notification active, Domain A notification active with "false" condition --> No notification is sent


Another approach is to enhance the condition of the global Notification instead of creating an override, which leaves you with only one element to manage. This, however, strongly depends on the process.


vstefano
Giga Contributor

Thank you. This has been verified as the proper course of action. Thank you