Dynamic variables allow for storytests to take different values, depending on the values that have been defined.

As a general rule, it's better to set a single value to a ''dynamic variable''.

 * Rather than using an !-!include-! and revising the value of variables and dynamic variables to alter the contents of the !-!include-!, make use of ''defined actions'' with appropriate parameters.

Dynamic variables  can be loaded from a properties file, as well as being set within storytests.
!2 Using Dynamic variables
 * The value of a dynamic variable is accessed using the @{} form. Eg:

|''with''|//input|''set text''|@{simone.name}|

 * They may be nested, such as within ''defined actions''. Eg, where ''person'' is a parameter, the value of the variable is resolved before resolving the dynamic variable value:

|''with''|//input|''set text''|@{@{person}.name}|

 * To show the value of one or more dynamic variables:

|'''show'''|''get''|@{simone.name} with card @{simone.credit card.number}|

 * If a dynamic variable doesn't have a value, the @{} form remains
!2 Changing Dynamic variables
 * Load dynamic variables from a property file:

|''add dynamic variables from file''|c:/props.txt|

 * Load dynamic variables from a unicode-based property file:

|''add dynamic variables from unicode file''|c:/props.uni|

 * Set a dynamic variable to a string in a storytest:

|'''set'''|simone.name|''to''|Simone|

 * Set a dynamic variable to the result of an action:

|'''set'''|simone.id|''add''|Simone|''to''|Persons|

 * Set several dynamic variables at once in a storytest:

|''set variables''|
|simone.name|Simone|
|simone.credit card.number|41111111|

 * Clear all dynamic properties:

|''clear dynamic variables''|
!2 Specification
|.FitLibrary.SpecifiCations.DynamicVariables|
