Variables can be defined at the following supported scopes, which determine the accessibility to the variable:

  • Global (Server). These registers are global to the entire server (iSM), accessible and shared across all components. They require a serialization lock for the register setting operation.
  • Global (Channel). These registers are global only to the channel, and all workers running on this channel. They require a serialization lock for the register setting operation. These registers are used to share information across workers processing messages on the channel (protocol).
  • Message (Worker). These registers are bound to the message/document that is flowing through the system (service bus). These registers are available only for the given worker processing the document from the point of definition, all the way to the completion of the channel (outlet).
  • Local (Flow). These registers are bound to a process flow and any of its sub-flows. These registers are available from the point of definition to the end of the process flow.
  • Local (Thread). These registers are bound to a specific thread in a process flow (execution line). These registers are available only on a specific process flow from the point of definition to the point of completion.

The following are several visual representations of variables within commonly used message and channel scopes.

Message (Worker) Scope

  • Register set in a process flow

  • Register set in a channel inlet

Channel Scope

  • Register set in a process flow

  • Register set in a channel inlet