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

Not missing anything, what you described is how it works.


That is what I expected too. For whatever reason it is not working that way on my instance. If it is inactive it just reverts and uses the one defined in the domain above it. The only way to get it to work was in that long explanation above which should not be necessary.


I suppose another way would be to leave it active and leave all recipient fields empty but again, my goal is to get this working as expected not having to build out workarounds...


You'd be way better off spending the time to do it right, get the setup correct, and then move forward from there, than to put a bunch of band-aids in place. It won't be easy, and might take some time, but worth it if you ask me.


Oh this isn't something that I'd band-aid and leave. This is a serious problem. One that my team and myself have to figure out before moving on but we have a deadline that requires some solution around this so I'll likely get the workaround in, then take the time afterword to identify the root cause and then circle back to these and correct it appropriately.



Thanks Michael.Fry, I really appreciate the help on this. When we find out what caused it I'll be sure to circle back and post here.