Normalization process
The Normalization Engine normalizes the non-normalized and modified CIs by using the following Product Catalog details:
- Product attributes — The Model, ManufacturerName, and (if available in the CI) the MarketVersion, VersionNumber and PatchNumber attributes of the CI.
The Normalization Engine currently uses only the product attributes for normalization. - Signature ID — Stored in the Product Catalog and created by the discovery tools for identifying products.
- File name and size — The name and size of the file.
The Signature ID and File name and size are used only with the Normalization Engine Java API. For more information, see BMC Helix CMDB 9.1.00 Java doc, available at PDFs-and-videos.
Every time a CI is created or updated, the Normalization Engine checks that the CI class is configured for normalization and performs the following tasks:
- If the class is configured for normalization, the Normalization Engine continues the process based on the data set configuration for the Inline or Continuous normalization modes.
- If the class is not configured for normalization, the Normalization Engine updates the NormalizationStatus attribute to Normalization Not Applicable and ends the normalization process for the CI.
How normalization works
The following graph illustrates the Normalization process:
- The Normalization Engine checks the Normalization Alias form for aliases for the ManufacturerName and Model attributes.
- The Normalization Engine applies the Version Rollup rules and sets the MarketVersion attribute using the Version Rollup rules. For information about Version Rollup, see Managing-software-licenses-in-your-organization-using-normalization and Creating-a-Version-Rollup-rule.
- The Normalization Engine searches the Product Catalog for a product and its version attributes based on the Model and ManufacturerName attributes.
If the product is not found, it checks if the Allow New Product Catalog Entry option is enabled.- If the option is enabled, the Normalization Engine creates a new product entry, sets the NormalizationStatus attribute, and ends the normalization process for the CI.
- If the option is not enabled, the Normalization Engine updates the CI's NormalizationStatus attribute as Normalization Failed, and ends the normalization process for the CI.
- The Normalization Engine checks the product association with the Company name populated in the CI.
If there is no association, the Normalization Engine updates the CI's NormalizationStatus attribute as Normalization Failed, and ends the normalization process for the CI. - If the MarketVersion attribute is populated for a CI, the Normalization Engine searches the Product Catalog for a product that matches the CI using the ManufacturerName, Model, and MarketVersion attributes.
- If the Normalization Engine finds the ManufacturerName, Model, and MarketVersion attributes, the Normalization Engine substitutes the Category, Type, and Item attribute values from the Product Catalog entry in to the corresponding CI attributes.
- The Normalization Engine updates the NormalizationStatus attribute to Normalized and Approved or Normalized and Unapproved, and then ends the normalization process for the CI. Normalization of unapproved products depends on whether the Allow Unapproved CI option is disabled. By default, the option is enabled.
- The Normalization Engine checks the IsApproved flag for the entry.
- The Normalization Engine applies all the normalization features enabled for the data set.
- If Normalization Engine does not find a match in the Product Catalog with the ManufacturerName, Model, and MarketVersion attributes, and if the VersionNumber is populated for a CI, the Normalization Engine searches the Product Catalog for a product that matches the CI using the ManufacturerName, Model, and VersionNumber attributes.
- If it finds a ManufacturerName, Model, and VersionNumber, the Normalization Engine substitutes the Category, Type, and Item attribute values from the Product Catalog entry in to the corresponding CI attributes.
- The Normalization Engine updates the NormalizationStatus attribute to Normalized and Approved or Normalized and Unapproved, and then ends the normalization process for the CI. Normalization of unapproved products depends on whether the Allow Unapproved CI option is enabled or disabled. By default, the option is enabled.
- The Normalization Engine checks the IsApproved flag for the entry.
- The Normalization Engine applies all the normalization features enabled for the data set.
- If both, MarketVersion and VersionNumber are not populated for a CI, the Normalization Engine checks for a match with ManufacturerName and Model.
- If the Normalization Engine finds a match, it checks if the versions are listed. Because the MarketVersion and VersionNumber are not populated for a CI, the Normalization Engine expects that either no versions are listed, or the version is listed in the Product Catalog as Unknown and the version of the CI is NULL. In this case, the Normalization Engine substitutes Category, Type, and Item attribute values from the Product Catalog entry into the corresponding CI attributes.
- If the Normalization Engine does not find a match, the Normalization Engine updates the CI's NormalizationStatus attribute as Normalization Failed and ends the normalization process for the CI.
- If the Normalization Engine does not find a Product Catalog entry with a matching version, it checks if the Allow New Product Catalog Entry option is enabled.
- If the option is enabled, the Normalization Engine creates a new product entry, sets the NormalizationStatus value, and ends the normalization process for the CI.
- If the option is not enabled, the Normalization Engine updates the CI's NormalizationStatus attribute as Normalization Failed and ends the normalization process for the CI.
After the Normalization Engine normalizes the data, it is reconciled to the CMDB production data set.
You can use the Product Catalog Mapping Alias with data sets configured for normalization to control the automatic expansion of the Product Catalog. For example, a Product Catalog Mapping Alias might map all the data provider's default categorizations to preferred categorization in the Product Catalog. The Allow New Product Catalog Entry option is selected for the data provider's data set in the Configurations > Dataset Configurations console. So, every time a new product name and manufacturer combination is discovered, a new product catalog entry is created, using the preferred three categorization tiers and the discovered product name and manufacturer.
Scenario to normalize attributes with null values
If you have a CI with blank (null) values for either model or manufacturer name, we recommend you to first manually create the Product with model name as BMC_UNKNOWN or manufacturer name as BMC_UNKNOWN in the Product Catalog, and then perform normalization.
If the CI has no values (null), or any of the special keywords “Unknown” or “BMC_UNKNOWN” for either Model or ManufacturerName attributes, the Normalization Engine replaces null or any of these special keywords with BMC_UNKNOWN and then searches the product catalog for a match. If it finds a product, it normalizes the CI (product) according to the process described above.
The normalization process can be summarized in the following table.
Sr no | ADDM | PC (Product Catalog) | Is the CI normalized? | ||||
| Model | Version | Patch | Model | Version | Patch | |
1 | A | Null | Null | A | B* *version normalization will happen only if no version information is available at all in the product catalog | - | No |
2 | A | Null | Null | A | Unknown | - | Yes |
3 | A | Yes | Null | A | - | - | No |
4 | A | Yes | Null | A | Unknown | - | No |
5 | A | - | - | A | Yes (same as ADDM) | - | No |
6 | A | Yes | No | A | Yes (same as ADDM) *Patch normalization will work only if no patch value is defined for the particular version in the Product Catalog | Unknown | Yes |
7 | - | - | - | A | Yes (same as ADDM) | - | No |
8 | Yes | Null | A | A | Yes (same as ADDM) | Yes (same as ADDM) | Yes |