Basically. There are miscellaneous uses, like IdP expressions that use runScript()
, and I use it in my EtherNet/IP driver for communication event handling.
Any scripting where the origin call is inside a project strictly uses that project's inheritance chain for its library scripts. Arrange for "SA" to also inherit from "P".
For more complex situations, consider something like this:
For compatibility with v7.9 upgrades, the gateway scripting project is the only project that can be both inheritable and have runnable library functions. (Though it otherwise doesn't run.)