Refresh Data Across All Sessions


I am trying to find a way to refresh data across all sessions of a perspective application. The current way in development is that there is a global tag RefreshData that gets turned on/off based on actions by users. The issue with that is we are noticing if 2 people are writing to that tag at the same time, it is likely not going to refresh for the second person that needs to refresh their data. It is currently writing the tag high, sleeping for a second, and turning the tag off. Which is why we are noticing this issue. Is there any supported way to send a message across all sessions no matter what / not use a sleep as a method of forcing this delay needed to detect the change to the tag?

Thanks in advance.

Why not use system.util.sendMessage() instead of a tag?

I was looking at that just a bit ago, how does that integrate into every session? Looks like it'd need to have a session event handler that reaches out to every binding single binding that needs to be refreshed. But I'm unclear (just learning about this functionality right now) on how that message handler has context to every component that may or may not be loaded per session.

Here's a use case I am looking at. I have different tables on 2 different views, if user 1 has view 1 open and user 2 has view 2 open. User 1 enters some new data and needs to refresh user 2's view/table. How would the message handler know what sessions have what views/properties available to refresh?

Or is it as simple as

system.util.sendMessage(project, refreshData, 'S')

with a message handler on any component that needs to listen for that refreshData message where that component can refresh itself?

This, but you need an intermediate session message handler to catch the outgoing from system.util.sendMessage and broadcast it again with system.perspective.sendMessage. More on that here: