&VARIABLE#-style variables in the AE

Discussion created by Michael_Lowry on Jan 30, 2018
Latest reply on Feb 2, 2018 by Michael_Lowry
I have been trying to learn a bit more about the different types of &VARIABLE#-style variables in the AE, and in particular, where and how they can be set, and where they are inherited.

As anyone who has worked with the Automation Engine for a while will already know, the product and its documentation use the term variable to refer to multiple quite different things. (I have discussed the ambiguous terminology at length elsewhere.) For the purposes of this discussion, I am focusing only on the types of variables that take the form &VARIABLE#. These include several different types:
  • Script variables: Variables not defined in the Variablesof an object, but set using the :SET script command. This includes alsoarraysdefined using the :DEFINE script command.
  • Object variables: Variables defined in the Variablesof an object.
  • Prompt set variables: Variables defined in aPrompt Setof an object.
In addition, variables can be defined at different levels. The level at which a variable is defined determines where the values of these variables can be read. (The Inherit from parent option in workflows and schedules also affects variable inheritance.)

My main question today concerns the level at which a variable is set.

When a script command is run to set the value of a variables, what determines at what level the variable is set?

From recent experience, I surmise that the following two actions are equivalent:
  • Running :PSET in a workflow or its immediate child tasks, regardless of whether the variable is defined in the workflow’s Variables.
  • Running :SET in the workflow or its immediate child tasks, only if the variable is defined in the workflow’s Variables.
Is this correct?