# ScriptExpressionEvaluatorType (Complex Type)

### Namespace: http://midpoint.evolveum.com/xml/ns/public/common/common-3

Supertype: ScriptExpressionEvaluatorConfigurationType
Generic script expression. The purpose of the expression is to return a value. The expression must produce something that is a piece of XML, which means that it may produce either string value, XML node or a list of XML nodes. The expression may use variables or arguments. However, such variables or arguments passed to the expression will be different for each invocation. It should be documented in each case this type is used.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
description | property string | [0,1] | Free-form textual description of the object.
trace | property boolean | [0,1] | Explicitly trace the execution of this expression.
relativityMode | property TransformExpressionRelativityModeType | [0,1] | TODO
includeNullInputs | property boolean | [0,1] | If set to true (which is the default) the script will be evaluated with null value as argument when the input is changed from or to an empty value.
condition | property ExpressionType | [0,1] | Condition driving whether this expression is evaluated at all (for given inputs).
language | property anyURI | [0,1] | Language of the expression.
returnType | property ScriptExpressionReturnTypeType | [0,1] | The type of the expression result, either "list" or "scalar".
objectVariableMode | property ObjectVariableModeType | [0,1] | Type of object variables that appear in the script.
code | property string | [1,1] | Script code in the native format of the scripting language.

- ### Items

  - #### description

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Free-form textual description of the object. It is supposed to describe the object or a construct that it is attached to.

    Anything that the system administrator wants may be here. The system will not interpret the information except for displaying it and allow user to edit it.

  - #### trace

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Explicitly trace the execution of this expression. The execution will be logged on INFO level if this property is set to true to make sure that it will be visible in the logs.

  - #### relativityMode

    Flags: RAM,runtime,AVals:2

    Multiplicity: [0,1]

    TODO

  - #### includeNullInputs

    Flags: RAM,runtime

    Multiplicity: [0,1]

    If set to true (which is the default) the script will be evaluated with null value as argument when the input is changed from or to an empty value. This generally works well for most cases. It may be set to false as an optimization. Note: default setting for this property may be overridden in specific expression evaluators.

  - #### condition

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Condition driving whether this expression is evaluated at all (for given inputs).

  - #### language

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Language of the expression. Groovy is the default language if other language is not specified.

  - #### returnType

    Flags: RAM,runtime,AVals:2

    Multiplicity: [0,1]

    The type of the expression result, either "list" or "scalar". If not set it will be determined automatically from the target data type for the expression. This setting should be used only if the automatic mechanism does not work as expected.

  - #### objectVariableMode

    Flags: RAM,runtime,AVals:2

    Multiplicity: [0,1]

    Type of object variables that appear in the script.

  - #### code

    Flags: RAM,runtime

    Multiplicity: [1,1]

    Script code in the native format of the scripting language.