Assignment
Values are assigned to variables in the form @VariableName = Value. The value can represent complex macro expressions that return the respective values.
Values are mainly assigned in the processing step when processing the markos, which are stored under ProcessMacro[].Macro[]. Here, during the execution of field macros, there is indication as to which field the result value is assigned.
Notice
This syntax is used neither with configuration properties that expect a field macro expression as a parameter (e.g., .ConditionMacro) nor when initializing fields from the field catalog via the property FieldCatalog[].Field[].InitMacro. In these cases, the target field for the execution result is already known from the context and therefore need not be specified.
The context of execution is, however, not known to the macro parser. Thus, an expression in the syntax of an assignment can be misinterpreted because the syntax is identical to the syntax for comparing a variable value with another value. To resolve this ambiguity, the double equal sign (==) should be used when comparing values.
Values can also be assigned to a variable that is unknown by name and for which no field is defined in the field catalog. In this case, a temporary variable of this name is implicitly created. However, the value of this temporary variable cannot be persisted, so the variable is only valid for the current execution block. In this way, variables can be defined that, for example, only cache temporary values without having to create a dedicated auxiliary field in the field catalog. Temporary variables must correspond to header data fields in terms of name syntax. The more complex syntax of a table field cannot be used for temporary variables.