Object-oriented paradigm

Object-oriented paradigm

Projects that you create in
FactoryTalk Optix Studio
are based on the object-oriented paradigm.

Sessions and UI

When you define UI elements at design time, these UI elements are actually object types from the perspective of
FactoryTalk Optix Applications
. At runtime,
FactoryTalk Optix
creates independent sessions. The native presentation engine creates one UI instance from the types defined at design time. The web presentation engine creates UI instances from the types defined at design time for each web client.
The sessions are completely independent from each other and cannot interact with other sessions. Objects within a session can only interact with other objects in that session and global objects, such as alarms, model variables, or tags from controllers.
Changes within a session are discarded when the session instance is destroyed. For example, if you refresh or navigate from a screen and back, changes in that screen are lost.

Sessions and NetLogics

You can create NetLogics in two scopes:
Global scope
Create a NetLogic anywhere within the project information model. Use
Project.Current.Get
to manipulate UI objects. Remember to destroy and recreate the session instance to inherit and display the changes at runtime. For example, navigate to a different screen and back or refresh the screen.
Session scope
Create a NetLogic as a child to a session UI object, such as a screen or a data grid and modify the session UI object by using
Owner.get
. Any changes to the UI display immediately at runtime. Such NetLogics can only interact with objects in the same session and global objects.
Consider the following examples:
  • Refreshing a data grid. Data grid is a session object and the NetLogic that refreshes data must be a child of the data grid to operate as intended.
  • Creating an alarm. Alarm is a global object and the NetLogic that creates the alarm can be placed on the session level or the global level.
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.