Apparent duplicate cmdb_software_component_model records after upgrade to Zurich<!-- /*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: ; } } .kb-wrapper { font-family: 'Lato', sans-serif; font-size: 12pt; line-height: 1.7; max-width: 100%; color: #000000; } .kb-wrapper h2 { font-family: 'Lato', sans-serif; font-size: 14pt; font-weight: 900; color: #032D42; border-bottom: 2px solid #e8fce4; padding-bottom: 4px; margin-top: 24px; margin-bottom: 12px; } .kb-wrapper p, .kb-wrapper li { font-size: 12pt; } .kb-wrapper ul, .kb-wrapper ol { padding-left: 24px; margin: 8px 0; } .kb-wrapper code { background: #e6f0f5; color: #032D42; border: 1px solid #b8cfd8; padding: 1px 5px; border-radius: 3px; font-size: 11pt; font-family: monospace; } .kb-wrapper table { border-collapse: collapse; width: 100%; margin: 12px 0; font-size: 12pt; } .kb-wrapper th { background-color: #032D42; color: #ffffff; padding: 8px 12px; text-align: left; } .kb-wrapper td { padding: 8px 12px; border: 1px solid #b8cfd8; } .kb-wrapper tr:nth-child(even) td { background-color: #e8fce4; } .kb-wrapper .callout-warning { border-left: 4px solid #e6a817; background: #fff4e0; padding: 10px 14px; margin: 12px 0; border-radius: 3px; } .kb-wrapper .related-links a { color: #032D42; } .kb-wrapper .link-disclaimer { font-size: 10pt; font-style: italic; margin: 2px 0 10px 0; } /* Numbered steps */ .kb-wrapper ol.steps { list-style: none; padding-left: 0; counter-reset: step-counter; } .kb-wrapper ol.steps li { counter-increment: step-counter; display: flex; align-items: flex-start; gap: 12px; margin-bottom: 10px; } .kb-wrapper ol.steps li::before { content: counter(step-counter); background: #032D42; color: #63DF4E; font-weight: 900; font-size: 11pt; min-width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 2px; } Issue Following an upgrade from Yokohama Patch 11 to Zurich, a large number of cmdb_software_component_model records appear to have been created in duplicate, with each Software Component Model entry appearing twice. Symptoms After upgrading to Zurich, cmdb_software_component_model records appear doubled — approximately two records exist for each Software Install entry.In each apparent pair, one record has the build field empty and the other has it populated with the normalized full version string. Facts The affected table is cmdb_software_component_model.The records are created by the SamComponentModelGenerator Script Include.The behavior is controlled by the system property com.snc.sam.software_component.choice.version_level.If this property is not explicitly defined on the instance, it defaults to both.Under the both setting, two cmdb_software_component_model records are intentionally created per Software Discovery Model entry — one tracking the major version only and one tracking the full normalized version.These are not duplicate records; they represent the same software tracked at two different version granularities simultaneously. Release Zurich Cause The system property com.snc.sam.software_component.choice.version_level was not explicitly set on the instance, causing it to operate on its default value of both. Under this setting, the SamComponentModelGenerator Script Include deliberately creates two cmdb_software_component_model records per Software Discovery Model entry: Record 1 — version field set to the normalized major version; build field left empty.Record 2 — version field set to the normalized major version; build field set to the normalized full version. This is expected behavior by design. The records that appear to be duplicates are, in fact, the same software being tracked at two different version granularities simultaneously. Resolution No corrective action is required if dual version-granularity tracking is acceptable. The behavior of this feature is fully configurable via the system property com.snc.sam.software_component.choice.version_level. The available values and their effect are as follows: Property ValueRecords Created per Installversion Fieldbuild Fieldboth (default)2Normalized major versionEmpty on one record; normalized full version on the othermajor1Normalized major versionEmptyfull1Normalized major versionNormalized full versionnone0—— To set or update this property: Navigate to System Properties and search for com.snc.sam.software_component.choice.version_level.If the property does not exist on the instance, create it with the desired value.Set the value to major, full, or none based on the preferred version tracking granularity. Important: Changing this property to major, full, or none affects only newly created records going forward. Records already created under the both default will remain and must be manually reviewed and cleaned up if desired. Confirm the preferred version tracking granularity before making any changes. Related Links Software Component Model table