I need to accomplish a tag change event, considering the logged user. So I cannot do that in the tag change event of the tag itself. I need to use the tag change event at client events level.
Indeed, I do not want to override the client events coming from the parent project. Is there a way?
No way to utilize a client tag change event without overriding the events coming in from the parent project.
One possible way to get around this is, if your project has an always opened docked window or similar, bind the tag you want to monitor to a custom property on the root container of the window.
Configure a propertyChange event on the root container, check for the event name to match the custom property name, and execute whatever change event code you need from there.
I would recommend putting the bulk of the change event code in the project library and then calling that function from the property change event on the window.
It is an extremely bad practice to ever define events (whether gateway or client) in an inheritable project. To avoid this specific problem, and to avoid events firing multiple times unexpected due to inheriting in multiple projects.
If you arrange for the actual code to be in the parent's project library, then the actual events in the leaf projects can be one-liners. (Highly recommended for all event scripts.)
2 Likes
Great approach. I’ll do so
Fully in agreement with. I have a separate project, not-inherited, just for gateway events. Nothing else
For client events, I need “standard” tasks at client startup and each event is strictly client-related, That’s the reason I do not want any override
Well, no simple solution without an override. 
N.B. this is fixed in 8.3 - gateway & client event scripts are separate 'real' resources instead of being multiplexed into a single massive resource, so some of the pains of inheritance are eliminated.
1 Like