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: 

CMDB Data flow.png

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 nameDescription 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:

NE_attributes info form.png

BMC.CORE.CONFIG:BMC_CMDBComponent

 Attributes are added to the PropertyValue field. The following image shows the attributes listed in this field:

EOLattributes.png

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:

Instance normalization.png

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:

NE Dataset Options.png

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

 

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*