Null handling

An input message can contain null fields and values, and a message flow can create a logical tree for an output message that contains null fields and values.

Within a logical tree, there are two types of null:

Implicit
A field does not exist and has a null value by implication.
Explicit
A field contains a specific value that is interpreted as null.

The way in which an explicit null value is interpreted depends on the parser, the operations performed by the parser, and the ESQL operations performed on the message tree field.

You can use the ESQL SET and CREATE statements to populate a message tree field with a name, type, and value. The value assigned to the message tree might therefore be the result of an expression that evaluates to a null. This can be caused by the use of an uninitialized variable, a message tree field that does not exist, the result of a database query, or the explicit use of the NULL keyword.

Explicit nulls are handled by the MRM and generic XML parsers:

The following considerations for explicit nulls apply:

In summary, some parsers create a null value in the message tree from the input bit stream, and can handle a message tree field containing an explicit null value when they write a new output message bit stream. However, you can perform other operations on the fields in the message tree during message processing, and you can configure a message flow to copy message tree fields from one domain to another.

The following topics provide more information about NULL handling:

Related concepts
ESQL overview
The XML parser and null values
Custom wire format: NULL handling
XML wire format: NULL handling
TDS format: NULL handling
Logical tree structure
Related tasks
Designing a message flow
Developing ESQL
Manipulating message body content
Querying null values in a message in the MRM domain
Setting null values in a message in the MRM domain
Related reference
Built-in nodes
Message model reference information