
- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on 04-06-2022 09:52 AM
What are all these fields, and do I need to be concerned with them?
Since the availability of the Software Asset Management application in the Jakarta release, there have been many inquiries about the attributes contained in the cmdb_sam_sw_install table. If you perform a search in this Community you’ll find a significant number of questions raised about the use of individual attributes, how to update values, and how is this or that data point utilized. While the primary goal of this article is to identify the fields SAM Admins and ServiceNow Administrators should be concerned about, it will also address to a degree, the purpose of the many other attributes contained in the table.
Primary Attributes Used by SAM Admins.
Active install (active): When the same software installation is discovered by multiple discovery sources, only one will be set to “active = true”. The remainder will be set to false. This is to avoid double-counting in reporting.
Additionally, when the com.snc.samp.exclude_device_flag system property is in use, software installation records representing software installed on matching CI’s will be set to “active = false”. This is to preclude their inclusion in reconciliation calculations. The “SAM - Adjust installs for excluded Cis” scheduled job handles the setting or unsetting of the Active install attribute for CI’s impacted by the system property. For additional information on this system property, refer to the ServiceNow Docs site.
Display name (display_name): Discovered product reflected as a concatenation of the Publisher, Product, and Edition found by a discovery source.
Discovery model (discovery_model): A reference value to the Discovery Model representing the software installation. To reduce the system resources it takes to query millions of records during reconciliation calculations, Discovery Model records are created for each unique software product, version, and edition combination found in the Software Installation table. The Discovery Model is where normalized values for publisher, product, version, and edition are stored. When a software installation record is inserted into the table, the “Create a Software Normalization” business rule is executed. It is this business rule that either links the software installation record to an existing discovery model or creates a new discovery model, normalizes the discovery model, and populates the discovery_model reference on the software installation record.
Publisher (publisher): The publisher value identified by the discovery source of the software installation. This attribute is a string value representing the exact value returned by the discovery source. The field is not a reference to the SAM Content Library, nor is it a reference to the platform Company (core_company) table.
Version (version): The version value identified by the discovery source of the software installation. This is the exact, not normalized value returned by the discovery source.
Edition override (edition): When the software edition is not returned by a discovery source as part of the Display name value, you can manually enter the edition into the Edition override attribute.
Installed on (installed_on): A reference link to the Configuration Item (cmdb_ci_hardware) record on which the software is installed.
The Default Form
The default form contains most of the attributes identified in the section above, those important to SAM Admins. However, it contains additional attributes that tend to cause confusion. Attributes not identified above are specified below.
Installation Tab
Prod id (prod_id): This attribute is deprecated
Install location (install_location): File location path identifying where the software is installed. Use of this attribute may require additional configuration of a discovery application and the integration of that application into ServiceNow.
Install date (install_date): Date the software was installed onto the device. Use of this attribute may require additional configuration of a discovery application and the integration of that application into ServiceNow.
Revision (revision): This attribute is deprecated
Instance key (instance_key): Unique ID for the instantiation of the software. Automatically generated when the software is installed. Use of this attribute may require additional configuration of a discovery application and the integration of that application into ServiceNow.
Uninstall string (uninstall_string): Identifier used to uninstall the software. Use of this attribute may require additional configuration of a discovery application and the integration of that application into ServiceNow.
ISO serial number (serial_number): Placeholder for the ISO Serial Number. Use of this attribute may require additional configuration of a discovery application and the integration of that application into ServiceNow.
Reconciliation Tab
Entitlement (entitlement): This attribute is deprecated.
Inferred suite (inferred_suite): Populated by automation associated with the Reconciliation process. When populated, it contains a link to the suite parent software model. This is not an attribute a user should update or alter.
Omit from suites (omit_from_suites): True/False flag identifying if the software should be excluded from consideration when identifying suite children. When set to True (checked), the software installation will be considered a stand-alone installation. This attribute can be updated by a user to force a desired reconciliation outcome.
Discovery source (discovery_source): Discovery product that created the software install record. Sample values: ServiceNow, SN File Discovery, ILMT, SG-SCCM, SG-JAMF.
Attributes Managed by the SAM Application or Discovery Sources.
These values may be of interest to the SAM Admin but they are not editable and in only niche use cases are valuable for reporting.
Allocation needed (allocation_needed): This true/false attribute identifies if the software install requires an allocation for compliance. This would be in the case of Per Named User and Per Named Device license metrics where software has been found installed but no allocation is present for the user identified in the Assigned To on the Installed On device.
Assigned to (assigned_to): A reference attribute to the sys_user table identifying the Assigned To value of the Installed On device. The value is leveraged for Per User and Per Named User license metrics and is updated during the reconciliation process from the Assigned to value found on the Installed On CI.
Class (sys_class_name): The class of the install. Possible values; Software Installation, IBM Peak Consumption, and Engineering Software Peak Consumption.
Cloud host type (cloud_host_type): Identifies if the Installed on device is on a shared host or a dedicated host. Possible values; Shared, and Dedicated. Used by the Cloud Insights product.
Cloud license type (cloud_license_type): The attribute identifies if the installation utilizes a BYOL or License Included (pay as you go on cloud) license. Possible values; BYOL, and License included. Used by the Cloud Insights product.
Cloud license type source (cloud_license_type_source): Indicates the discovery source of the license type column on an install. Possible values: SN Discovery, Manual tags, Cloud Insights, and Third-party integration. Used by the Cloud Insights product.
Cloud provider (cloud_provider): Reflects either AWS or Azure, the two providers currently supported by Cloud Insights.
Cloud service type (cloud_service_type): Will contain either Infrastructure as a Service (IAAS) or Platform as a Service (PAAS). Used by the Cloud Insights product.
Created by application pattern (created_by_application_pattern): This true/false value is set to true if the software was discovered by patterns. This can be for Microsoft SQL Server (and some SQL Server components), Microsoft Exchange Server, Oracle Database Server, Oracle MySQL Server, Oracle GlassFish, and Oracle Database Weblogic Server.
Deduplicated (deduplicated): The value is set to True if the deduplication process has run against the record. For information on deduplication refer to the ServiceNow documentation website.
Discovery source (discovery_source): Discovery product that created the install - Sample values: ServiceNow, SN File Discovery, ILMT, SG-SCCM, SG-JAMF
Domain (sys_domain): This attribute is utilized by ServiceNow when you have Domain Separation enabled. The value reflects the Domain under which the software installation is managed. This is derived from the Domain assigned to the “Installed on” Configuration Item.
Domain path (domain_path): This reflects the domain hierarchy level of the assigned domain when Domain Separation is in use.
Inference calculated (inference_calculated): True/False flag reflecting if this record has been identified as a suite component has been processed and inferred to a suite software model.
Inferred suite level (inferred_suite_level): This integer value is used to identify the level of the suite when suites are nested. The height of the inferred suite software model (i.e. it will be greater than one if it includes another suite in its suite components)
Inferred suite product (inferred_suite_product): A reference value to the Software Product table, which is part of the SAM Content Library. This link is set during software reconciliation processing.
Is allocated (is_allocated): True/False. Identifies if a software allocation record was matched (licensed by an allocation) to the software installation record during reconciliation processing.
Is reconciled (is_reconcilied): Indicates if the install has been processed by the reconciliation engine.
Last scanned (last_scanned): The date the software was last scanned on the hardware device.
Last used (last_used): The date the software was last used. Important note about this value: ServiceNow discovery products and plugins do not populate this value. Instead, they write the last used date to the Software Usage (samp_sw_usage) table, which is leveraged for Reclamation. There is an API available to write values to the Software Usage table from other data sources. If you wish to utilize this attribute, which is most often left blank, you’ll need to customize your discovery source integration to do so.
License metric result (license_metric_result): This reference value links to the most recent License Metric Result record where the software installation was utilized in compliance calculations.
Minimum viable software model (software_model): This reference to the software model is set by the reconciliation process. The value isn’t written for every software installation.
Normalized display name (normalized_display_name): Display Name of the normalized values. It is set only for installs that will be processed by reconciliation (licensable and ignore installs = false on the product). For reporting, it is best to use dot walking to report on the normalized values in the related Discovery Model record.
Normalized product (norm_product): This is a reference field to the normalized product. It is set only for installs that will be processed by reconciliation (licensable and ignore installs = false on the product). For reporting, it is best to use dot walking to report on the normalized values in the related Discovery Model record.
Normalized Publisher (norm_publisher): This is a reference field to the core_company table reflecting the normalized publisher. It is set only for installs that will be processed by reconciliation (licensable and ignore installs = false on the product). For reporting, it is best to use dot walking to report on the normalized values in the related Discovery Model record.
Primary install (primary_install): This is a reference to another software installation record. When duplicates are found one is marked active = false and the primary install link is set to the record where active = true is retained.
Primary key (primary_key): Unique ID for the instantiation of the software.
Product result (product_result): Reference to the Product Result record created by the reconciliation process.
Reconciliation state (reconciliation_state): This integer value is used by the reconciliation process to track various stages of reconciliation processing.
SCCM group ID (sccm_group_id): The SCCM Group ID used during the Remove Software process (SAM Reclamation or Client Software Distribution). This data is brought into ServiceNow via an SCCM integration such as the SCCM Plugin but changes made in SCCM 2016 rendered this value mostly useless to ServiceNow. The value is not used by the Service Graph Connector for SCCM.
The following represents the source in SCCM: sccm_group_id - From the column "groupID" in the SCCM software install views V_GS_ADD_REMOVE_PROGRAMS, V_GS_ADD_REMOVE_PROGRAMS_64, and V_GS_INSTALLED_SOFTWARE
SCCM TimeStamp (sccm_timestamp): The SCCM record timestamp. This data is brought into ServiceNow via an SCCM integration such as the Service Graph Connector for Microsoft SCCM.
The following represents the source in SCCM: sccm_timestamp – From the column “timestamp” in the SCCM software install views V_GS_ADD_REMOVE_PROGRAMS, V_GS_ADD_REMOVE_PROGRAMS_64, and V_GS_INSTALLED_SOFTWARE
Software model result (software_model_result): A reference value to the Software Model Result where the software installation was used. This value is generated by the reconciliation process.
Software model source (software_model_source): This identifies the step in the reconciliation process that set the Minimum Viable Software Model attribute.
Unlicensed install (unlicensed_install): True/False flag identifying if the most recent reconciliation processing identified the software installation as unlicensed.
Deprecated Attributes
These fields have been deprecated and are not used by the Software Asset Management Application, SAM Foundations, or the legacy SAM plugin.
Background (background)
Entitlement (entitlement)
Foreground (foreground)
Is classified (is_classified)
Is subscription normalized (is_subscription_normalized)
Normalized (is_normalized)
Normalized publisher (normalized_publisher)
Normalized revision (normalized_revision)
Normalized version (normalized_version)
Processor mapping (processor_mapping)
Prod id (prod_id)
Revision (revision)
- 17,216 Views
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hi @Daniel Slocum ,
For the unlicensed installs, are we expecting these to have a Software Model Result and License Metric Result?
I see unlicensed installs, some have Software Model Result and License Metric Result however majority are (empty) for both.
https://www.servicenow.com/community/itam-forum/unlicensed-installs/m-p/2362268#M10712
Thanks
Cons
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
@Daniel Slocum - I think your definition for Display name (display_name) needs to be corrected, I don't believe there any concatenation happening on this field
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Does ServiceNow come with any OOTB functionality that kicks off as a result of New Software Found?
When Discovery finds software not already in the CMDB, aside from the obvious updates to cmdb_SAM_SW INSTALL, cmdb_software_product_model, and cmdb_discovery_model, is there any preconfigured jobs that notify anyone that something new was found and needs to be addressed?
Or is this something that I will need to address myself, by creating a schedule job that runs daily to report on the new found entries in the SAM_SW_INSTALL table including relevant information including the device it was discovered on and who that device is assigned to. This would then create a notification to be sent to group of stakeholders with an attachment (the report) or link to the report on platform. This then allows IT Operations, Cyber Security, etc to investigate the app and the user to determine if there is a threat, if the software is allowed, and the EA's to determine if the discovered software is a Business Application or just installed software not being tracked for APM purposes.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hello @Daniel Slocum ,
Could please help me get a complete understanding on what does the 'ignore installs' field in the software product table means, what does it do and how is populated (True/false).
Thankyou!
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hello @Daniel Slocum
For the Last Used date. This article claims that " Important note about this value: ServiceNow discovery products and plugins do not populate this value. Instead, they write the last used date to the Software Usage (samp_sw_usage) table, which is leveraged for Reclamation."
I think this statement is not truly correct, and might be miss-leading.
ACC Agent does populate last used date for certain applications, and it writes this data to "cmdb_sam_sw_install". I believe its done as a part of osquery.