How to Use Script Modules
To add a a project script, simply right click the Project Library item and click the New Script option.
Scripts and Packages
There are two main types of resources under the Project Library.
Scripts - Each script resource can contain many functions and objects.
Packages - Each Package effectively acts as a folder, allowing you to better organize each script resource.
For example, let's suppose you added the following script module named
myFuncs, whose body is shown below.
def hello(): return "Hi there!"
Once we save our project, we can now call this function from anywhere within the project using the following syntax
Project scripts are not accessible to the other resources until the project is saved.
For example, we could open the Script Console (Tools menu > Script Console), write the following, and execute the script.
Each script resource can contain multiple functions and objects. Note that as you add new function definitions, the list on the right will populate, allowing you a quick way to navigate through long scripts.
Gateway Scripting Project
Project scripts are normally only accessible from the project they were defined in. Thus objects that exist in other scopes, such as Tags that exist in the Gateway scope, are unable to call project scripts. Attempting to do so will result in Gateway log errors stating that "global name 'yourScript' is not defined'.
The exception to this rule is the Gateway Scripting Project. This project is specified by the Gateway Script Scripting Project property, under the Gateway web pages > Config > which is set in the Config section of the Gateway Webpage under Gateway Settings. Entering in the name of a project under this property allows the gateway Gateway access to project scripts configured in the specified project.
Thus, if the myFuncs library in the prior section was configured in a project named "Tester"
We could use that name in the Gateway Scripting Project.
After we save, Tags and other Gateway-scoped resources can then start calling any of the scripts from our project library in the "Tester" project.