Normalization and the Product Catalog
The Normalization Engine is a part of BMC Helix CMDB, and uses the Product Catalog to normalize data before the Reconciliation Engine identifies and merges the data. A Product Catalog entry is not a Configuration Item (CI), but specifies the normalized attributes for a CI. The following image represents an overview of the process:
By default, the Normalization Engine ignores the Product Catalog CI Type field, which specifies the BMC Helix CMDB class for a product, except in "CTI Only" mode. In this mode, if both the Model and ManufacturerName attributes are NULL and the Category, Type, and Item (CTI) values are available, the Normalization Engine uses the CI Type for classification.
If needed, you can configure the Normalization Engine to consider the class during normalization. To do this, add an entry in the BMC.CORE.CONFIG:BMC_CMDBComponent form with these details:
- ComponentId: com.bmc.cmdb.normalizationEngine
- PropertyName: Normalize_Class_Sensitive
- PropertyValue: 1
The Product Catalog offers various status options for each product. The Approved status can impact normalization depending on your configuration. By default, products are unapproved, and the Normalization Engine will normalize CIs using these unapproved entries. However, you can choose to normalize only approved products by disabling the Allow Unapproved CIs option in the Normalization component. Approved products are typically part of the Definitive Media Library (DML) or Definitive Hardware Library (DHL).
For example, suppose a data set contains a BMC_Product class instance named Financial Advisor Pro 1.0 by Apex Global, and the administrator uses the default setting to normalize both approved and unapproved CIs. The Product Catalog has a matching entry for this CI.
- If the Product Catalog entry is approved, the Normalization Engine updates the CI’s attributes and categorization based on the entry, setting its NormalizationStatus to Normalized and Approved.
- If the entry is not approved, the Normalization Engine still normalizes the CI but sets its NormalizationStatus to Normalized but Not Approved.
You can use the Managed status to track products within your organization. If a product is marked as unmanaged, BMC Helix CMDB can be configured to delete its CIs. This helps clean up unnecessary data from discovery tools.
Other Product Catalog statuses like Hide Product, Lifecycle, and Blacklisted Product do not impact normalization.
Normalization for end-of-life dates
End-of-life dates are stored in the following attributes in a CI:
- StartAvailability
- EndAvailability
- EndofSupport
- EndofExtendedSupport
- EndofSecuritySupport
- EndofLife
These attributes are normalized only in a Batch normalization job.
To process these attributes in normalization, these end-of-life attributes are added to the following forms too:
Form name | Description and use |
---|---|
NE:AttributesInfo | Attributes that are supported for class normalization are referred from this form. The attributes that are not added to this form are not processed in normalization. The following image shows an example of the end-of-life attributes added to the NE:AttributesInfo form for the BMC_Patch class: |
BMC.CORE.CONFIG:BMC_CMDBComponent | Attributes are added to the PropertyValue field. The following image shows the attributes listed in this field: Use this form to verify whether the following instance normalization property is added in the PropertyName field for the dataset to be normalized - feature_def_com.bmc.ne.feature.InstanceNormalizationFeature This property is needed for normalizing the end-of-life dates. The following image shows an example of this property being added to the BMC.SAMPLE dataset: If this property is not added to the dataset, open the NE:DatasetOptions form in the Mid Tier, and manually add it to the Features field as shown in the following image: |
The end-of-life attributes are added to the following forms too:
- PCT: ProductCreateInterface
- PCT: Product Catalog Setup
- PCT: Product Model-Version
- PDL: PD_Console
- PCT:VersionStatusFlagsJoin
- PCT:ProductVersionJoin
- PCT:ProductVersionPatchJoin