Ignition 8 Gateway Script and Client Event scripts with project inheritance

@Paul.Scott

I have a 7.9 backup upgraded to 8.0.7-nightly.
There is a global project inherited by another project “Final”.

I would like to know how are managed the gateway and client script for the global project and the “Final” project ? I don’t find any indication in: https://docs.inductiveautomation.com/display/DOC80/Project+Inheritance

With some test, the behavior seem to be as follow:

  • Client and Gateway scripts are not inheritable. You can’t override these ressources in the designer.

  • For Gateway script:
    Startup script of the global project is executed
    and then Startup script of the “Final” project

  • For Client script:
    script from the global project are not executed (for example startup). This make sense because the gobal project is not really loaded in the client scope.
    Client Script in the “Final” project are executed

Is it the intentional behavior for client script ???

Right-click -> override resource. The outstanding issue is that there is no granularity, the overridde is for all client or gateway scripts.

Are you sure the startup script for the "global" project is running? It shouldn't, but if you haven't overridden it in the child project it will run this script because it inherited it. But it's the child running it.

In the child project I can’t override Client Events or Gateway Events with a Right-click menu.
There is no menu ?

In my use case, both Gateway startup script in the global project and the child project are executed.
I don’t know who is responsible of the execution

You don’t see this?

image

If it’s not greyed out then it’s already overridden in the child project. If the child project had gateway events defined this would be the case.

I don’t see the parent startup scripts running in my test setup, so maybe it’s something specific to your configuration and that it’s an upgrade. You might need to open a ticket with support and provide your 7.9 backup.

Yes, I don’t have this menu.
It must be the upgrade of a 7.9 project who has put the overrides on the gateway and client events in the child project.

for the Gateways Events, Startup or timer script in the global project and in the child project are both executed in my case… I will see to fill a ticket if it’s not the intentional behavior.

If the global project (or any other project) is configured as Inheritable then it should not be “runnable” and its scripts should not be running.

Kevin, how would I revert the ‘Override Resource’ selection in Gateway Events or Session Events?
In scripts and views, I simply delete the script or view.
That’s not an option in Gateway Events or Session Events.
(Actually, no options come up when right clicking in 8.0.12 [after clicking on override resource]).

I don’t know why there isn’t UI for this, I’ll open an issue.

In the meantime you can delete the folder at $IGNITION/data/projects/$childProject/ignition/event-scripts and then click the “merge new changes from gateway” button in the designer. Maybe make a copy of it first to be safe…

Be careful, because this will delete all gateway event scripts (timer, startup, shutdown, etc…) defined in the child project, because they’re all tangled together into a single opaque “event-scripts” resource.

2 Likes

Hey Kevin, did this get any more love? As far as I can tell, the designer can’t be configured to inherit gateway or client scripts via the UI?

You should be able to override a parent project’s scripts from the UI (all or nothing, not individually), it’s undoing that action that needs UI support still.

I couldn’t find the original ticket for this, it may not have made its way over during our issue tracker migration. Made a new one… hopefully we can at least make this “un-overridable” in the UI soon.

Making each event script its own individual resource is already being tracked and is likely to be 8.2 timeframe due to the risk involved.

1 Like

Please make the new resource text-based.... It would be particularly nice if the script part of the event was stored in a file ending with .py ... :smiley:

4 Likes

That’s the plan!

3 Likes

Yep OK so I guess ours have ‘always’ been overriden in all of our projects… we always start with a preconfigured project/resource.