NULL values in reconciliation merge activities
Select Ignore if Null for a precedence association set or for a class and attribute precedence within that set to merge a NULL value in the dataset of the highest precedence to the target dataset. Both settings for this option have pros and cons.
Ignore 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 Ignore 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.
Ignore 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 Remedy Asset Management. It has a precedence value higher than the datasets for other BMC products to allow changes made in the Remedy Asset Management interface to be merged to the BMC.ASSET dataset. But if someone manually creates a CI using Remedy Asset Management and leaves most fields empty, then after reconciliation merges the CI to BMC.Asset dataset 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.
Additionally, consider a scenario where an attribute with a non-null value was merged to the target dataset because it has the highest precedence value among the source datasets. After merging, the attribute in the source dataset was modified and changed to a null value. However, the precedence value of this attribute is still the highest among the source datasets. In such cases, if a corresponding attribute in other datasets with a lower precedence value has a non-null value, and if Ignore if Null = Yes, the non-null-value will not be merged into the target dataset. The attribute value in the target dataset for that specific attribute will remain unchanged.
If you want to merge the attribute with a non-null value to the target dataset, you must specify a higher precedence for that attribute. The following image highlights this scenario: