Handling NULL values in reconciliation Merge activities
The Defer if Null option, which you can set both for a Precedence Association set and for class and attribute precedences within that set, determines whether a NULL value in the highest-precedence source dataset should be merged to the target dataset.
Both settings for this option have benefits and pitfalls.
Defer if Null = "Yes"
This means a NULL value is ignored and the Reconciliation Engine uses the highest-precedence non-NULL value it finds for that attribute. This ensures that even if only one of your discovery applications finds a particular value, that value is merged to your target dataset regardless of the precedence value of the source that provided it.
On the negative side, it prevents you from intentionally setting values to NULL in the target dataset, which is necessary for the
MarkAsDeleted attribute. BMC products set
MarkAsDeleted to either "Yes" or NULL. Therefore, after an instance has been marked as deleted in your target dataset, any source dataset with Defer if Null set to "Yes" cannot unmark it as deleted in the target. Their NULL value is ignored by a Merge activity.
Though you cannot merge a NULL value, you can work around this in character attributes by using blanks. This visually clears an existing value from an attribute, but can cause confusion if you are using that attribute in Identification rules or performing Compare activities. Blanks also cannot be used in the
MarkAsDeleted attribute because it is a selection, not character, attribute.
Defer if Null = "No"
This means the source dataset with the highest precedence value for an attribute merges its attribute value to the target dataset, even if that value is NULL. This allows you to intentionally set a NULL value in the target dataset, and therefore is useful with the
On the negative side, if your highest-precedence dataset has this option, any NULL values created by that dataset can never be overwritten, which can cause valuable data to sit in other source datasets unseen while your target dataset has the same instances populated with NULL values. This is the case with the BMC.ASSET.SANDBOX dataset that ships with BMC Remedy Asset Management. It has a precedence value higher than the datasets for other BMC products to allow changes made in the BMC Remedy Asset Management interface to be merged to the BMC.ASSET dataset. But if someone manually creates a CI using BMC Remedy Asset Management and leaves most fields empty, then after reconciliation merges the CI to BMC Asset before non-NULL values are available for it in another dataset, those NULL values can only be removed from BMC.ASSET by manually editing the CI again.