Project Inheritance Resource Cannot Be Inserted

I have two problems from working with project inheritance and hope to get some help on clarification or solution ideas.

1st issue - I have created several templates in the project “global” which was built as the parent project from Ignition 8 upgrade. Before this we’ve had no experience with building global templates so I may be missing something, but when I select one and choose to send to all other projects I receive an error that the resource cannot be inserted. When checking the log on the gateway I see a few instances of this error, but the templates still get pushed to the other projects and the count of errors in the log don’t match the number of projects being sent to. Is there a way to find out where this publish is failing?

2nd issue - I made a window to drop the above mentioned templates onto and test them. However, this window published to the other projects and threw errors as it became their startup window. I did not select to publish this window at any point like I had to do with the templates. Is there a setting for choosing whether or not to publish windows or is it like scripts where if it’s on the project then it automatically pushes to other projects?

I appreciate any help on this. Thank you.

For both of your issues, anything you create in global will be available to other projects as long as the individual project’s parent is set to ‘global’ (or a project that inherits global). There’s no sending involved.

IIRC, when you save the global project, it’s immediately pushed to everything that uses it.

This is actually a bug (sending resources throwing conflict errors in the logs) but it’s not relevant to what you’re trying to do.

Project inheritance has no “state” - an ‘inherited’ project is always up to date with whatever resources the parent project(s) have; you don’t need to manually synchronize anything. If a Vision client or Perspective session is open looking at project ‘child’, then pushing a save to ‘parent’ or ‘grandparent’ will automatically update ‘child’ with whatever resources have changed.

You cannot choose to selectively delete resources; if they’re in a parent project, they will be in the child project - either in the same state as they are in the parent, or however they have been overridden on the child. Choosing to remove an override in a child project is literally just deleting the local resource, so that the project system ‘falls back’ to the parent project(s) version of the resource.

1 Like

Ok i see so I don’t need to be taking any actions for these items and should just avoid placing test windows on a parent project if I don’t want it in other projects if I understand correctly. Can you further explain what the purpose of the “send to” function is then for the templates? Since it already updates on a project save I’m not certain I understand what else could need to be sent?

The second layer of the new project system is that there is no one, special, ‘global’ project - you can have as many ‘inheritable’ project as you want (in a sequence as long as you want) - and each ‘inheritable’ project can be the root of a tree of multiple projects. The ‘Send Resources’ option is meant to allow you to push a resource from one ‘branch’ of the tree directly to another project, even/especially when it’s in a totally “separate” branch. It’s basically just a shortcut for export selected -> open other project -> import.

1 Like