Hardware Asset Management - Duplicate Hardware Models ScenariosIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Duplicate hardware model records are being inserted in the instance, creating data quality and identification issues. The expectation is that if a hardware model record already exists, no duplicate model with the same name should be created by any data source. This behavior should be enforced across all hardware CI model classes and applied consistently across all data sources. Symptoms<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Scenarios explained with sample examples. Scenario 1: Explained with Meraki Networks, Inc. and model MX100.1. Normalization Data Services is active on the instance. This can be confirmed with the system property "glide.cmdb.canonical.normalize.existing.canonical.core_company_records".2. Custom normalized names and mappings for manufacturers are created on the instance causing conflicts during the model creation process. Example: Meraki Networks, Inc. is mapped to custom normalized company "Cisco Meraki".Cisco Meraki is mapped to normalized company "Cisco Systems, Inc." Scenario 2: Explained with Fujitsu and model Model5540.1. Normalization Data Services is active on the instance. This can be confirmed with the system property "glide.cmdb.canonical.normalize.existing.canonical.core_company_records". 2. Multiple duplicate hardware models exist with model as Model5540 but a invalid reference to the manufacturer. Only sys id will be seen. Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } ALL Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Scenario 1: API: var makeAndModel = MakeAndModelJS.fromNames('Meraki Networks, Inc.', 'MX100', 'hardware'); 1. When MakeAndModelJS.fromNames is called, "Cisco Meraki" is picked as the normalized company for "Meraki Networks, Inc." A combination of "Cisco Meraki" and MX100 is tried to be inserted in the hardware model table as it does not match any existing models. 2. The before-insert business rule 'Canonicalize Manufacturer Company Model' updates the normalized manufacturer to 'Cisco Systems, Inc.' after an initial lookup using 'Cisco Meraki', leading to a cycle where duplicates are created. 3. The combination of custom mappings and the business rule results in repeated insertion attempts with conflicting manufacturer-model pairs.Scenario 2:API: var mm = MakeAndModelJS.fromNamesAndNumber('Model5540', 'Fujitsu', '', "hardware", ''); 1. Normalization Data Services Guided Setup has not been completed. The core company Fujitsu exists with canonical set to false. 2. MakeAndModelJS.fromNamesAndNumber cannot find the normalized company name for Fujitsu. Hence tries to insert a new one in the core_company table and proceeds with creation of model. 3. Core company insert is aborted due to duplicate hash.org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "core_company_hash_key"Detail: Key (hash)=(BT9CxrrjQyyuJw6pePfmOA==) already exists. 4. Multiple Duplicate models gets created with invalid references to core company. Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Scenario 1:1. Review custom normalized names and mappings created in the instance, such as mappings from 'Meraki Networks, Inc.' to 'Cisco Meraki' and subsequent mappings to 'Cisco Systems, Inc.'2. Verify if the custom mappings for manufacturers and models are causing conflicts during the model lookup and insertion process.3. Consider modifying the custom mappings to directly map 'Meraki Networks, Inc.' to 'Cisco Systems, Inc.' instead of using intermediate normalized names.4. Perform a cache refresh (cache.do) to ensure changes to mappings or normalized names are reflected in the system.5. Monitor the process to confirm that duplicates are no longer created after adjusting the mappings.Scenario 2:The properties have to set as part of the NDS guided setup. Incomplete setup leads to these issues.