What Happens When Integration Server Executes a Link?
When executing a link between variables at run time, Integration Server does one of the following:
Copies the value from the source variable to the target variable. For example, when you link a source String variable to a target String variable,
Integration Server copies the value of the source String to the target String. This is called “copying by value.”
Creates a
reference to the source variable and uses the reference as the value of the target variable. For example, when executing a link between a source Document and a target Document,
Integration Server creates a reference to the source Document value and uses the reference as the value of the target Document. This is called “copying by reference.”
Integration Server copies by value when the source or target variable is a String. (An exception to this behavior is that when executing a link from a String to an Object, the Integration Server copies by reference.)
When executing links between all other types of variables, Integration Server copies by reference. Copying by reference significantly reduces the memory and time required for executing a link at run time.
When a value is copied by reference, any changes you make to the value of the source variable in subsequent flow steps affect the target variable. This is because the value of the source variable is the value of the target variable. The target variable does not contain a copy of the source variable value. If, in a later flow step, you used
to assign a value to the source variable, you would be changing the value of the target variable as well. (The target variable references the value of the source variable.)