Merge PreProcessor – accepts client attributes and EIS operation results as input and merges
them into a single result according to these rules: - Client attributes always contain the surrogate key of the
composite root instance, since it is used to identify the graph
instance.
- Client attributes must contain a fully specified (no null
attributes) primary key for the pre-processor to merge them with
the operation results.
- If an MBO instance is present in the client attributes but
missing from the EIS results, the client-provided instance is
used during merge processing. This allows the cache to be
populated based solely on client-provided attributes.
- If an MBO instance or attribute is present in the EIS result,
but not in the client attributes, the EIS result is
used.
Essentially the preprocessor treats client attributes as default
values that take effect only when the corresponding MBO attribute or
MBO instance does not exist in the EIS result. The client attributes
contain the client's version of the composite graph nodes influenced
by the operation. When a new composite graph is inserted, the set of
client attributes contains the complete graph. During an update to a
composite graph, only the input attributes associated with the
modified nodes and their ancestors are present in the client
attributes.
Note: There is a distinction between a null attribute
and a missing attribute, since the preprocessor considers null
attribute values to be valid non-primary-key attribute values.
If the EIS result contains a null attribute value, the
preprocessor does not attempt to find a corresponding default
client attribute.