from com.inductiveautomation.ignition.common.model import ApplicationScope
scope = ApplicationScope.getGlobalScope()
print ApplicationScope.isClient(scope)
print ApplicationScope.isDesigner(scope)
print ApplicationScope.isGateway(scope)
Can be done without the Java import via system.util.getSystemFlags - Ignition User Manual 8.1 - Ignition Documentation
Nope, cause that function is loaded by the Vision module
Oh whoops, I didn't read this all carefully enough.
After thinking about this, Phil was right, one shouldn't expect those system tags without Vision being installed.
If I had a nickel for every time I've said this to myself...
Question on the change you mention coming in 8.3, would it still work to call this from a designer scope? If not, could you consider providing an equivalent functionality for designer. Otherwise we’d have to try/catch?
Our scripting function deprecation policy (with only one exception I'm aware of in 8 years at IA) is as follows:
- Leave the old method in place at whatever name used to work.
- Stop providing an autocomplete hint for the old name.
- Offer a new method with corresponding functionality or behavior at the preferred new location.
So, in any situation you can currently use system.util.getConnectionMode
and it works (that is, in a Vision client or in a Designer with the Vision module) - your scripts will continue to work. No functionality will change. The only difference is the scope suggested in autocomplete will make it more clear that it's a Vision only function, to help others avoid this implicit reliance in the future.
Fantastic. Thanks for the support everyone!