
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-14-2020 04:21 PM
When a software is uninstalled or installed on a server & next discovery scan executes on this CI. How is the corresponding record in the cmdb_sam_sw_install table reconciled and records added / deleted.
Note - We have Software Asset Mgmt (Pro) activated
When checked under the discovery logs(ECC queue) we could not locate any triggered pattern that collects software installation entries. We checked the "Windows - Installed Software" sensor and it doesn't seem to handle updates into cmdb_sam_sw_install either.
Can anyone clarify what process handles record management for the cmdb_sam_sw_install table. Or is this something that is protected and native to the product?
Edited : Just to clarify that this question is not related to software license harvesting or software model management. Below simple example to explain my question better,
Day x - CI has 25 software installations displayed in CMDB under "Software Installation" related list
Day x+2 - Two days later, server team performs few un-installation on the server
Day x+5 - Discovery executes and it finds 23 software installation on the server
Now we would like to know
1 - what process deletes the additional two software installation records on the CI
2 - is this process real time (part of some pattern or probe) or is it a scheduled job ?
Solved! Go to Solution.
- Labels:
-
Discovery

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-08-2020 12:32 PM
Pasting the feedback from tech support . From this response it seems like an internal java code processes data reconciliation on the Software Installs table
The Windows - Installed Software" sensor calls the below line : this.addToRelatedList('cmdb_ci_spkg', filteredPackages, '', ''); https://<instance>.service-now.com/nav_to.do?uri=discovery_sensor.do?sys_id=df4bcfab0a0a0ba5007f09a96a434b74
addtoRelatedlist function is implemented in the DiscoverySensor script include
In the DiscoverySensor script include, we call the process function in the DiscoveryReconciler Script include and pass the table name "cmdb_ci_spkg" as a parameter. https://<instance>.service-now.com/nav_to.do?uri=sys_script_include.do?sys_id=4fa2ef960a0a0ba500d0ac5d968efa2d
In the DiscoveryReconciler script include, we have the below code snippet :
if (tableName == 'cmdb_ci_spkg')
{ var cmsoft = new GlideappCMDBSoftwareHelper(this.cmdbGr);
cmsoft.reconcile(obj.data);
So the above code calls the java class GlideappCMDBSoftwareHelper and the function reconcile which is responsible for populating the cmdb_sam_software_install table.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-19-2020 03:52 AM
Hi,
If you got your answer and satisfied with response please mark my response as correct so others can find it easily and get benefit from it.
Thanks,
Ashutosh

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-08-2020 12:32 PM
Pasting the feedback from tech support . From this response it seems like an internal java code processes data reconciliation on the Software Installs table
The Windows - Installed Software" sensor calls the below line : this.addToRelatedList('cmdb_ci_spkg', filteredPackages, '', ''); https://<instance>.service-now.com/nav_to.do?uri=discovery_sensor.do?sys_id=df4bcfab0a0a0ba5007f09a96a434b74
addtoRelatedlist function is implemented in the DiscoverySensor script include
In the DiscoverySensor script include, we call the process function in the DiscoveryReconciler Script include and pass the table name "cmdb_ci_spkg" as a parameter. https://<instance>.service-now.com/nav_to.do?uri=sys_script_include.do?sys_id=4fa2ef960a0a0ba500d0ac5d968efa2d
In the DiscoveryReconciler script include, we have the below code snippet :
if (tableName == 'cmdb_ci_spkg')
{ var cmsoft = new GlideappCMDBSoftwareHelper(this.cmdbGr);
cmsoft.reconcile(obj.data);
So the above code calls the java class GlideappCMDBSoftwareHelper and the function reconcile which is responsible for populating the cmdb_sam_software_install table.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎04-06-2021 07:21 AM
Did you get a response on how the cmdb_sam_sw_install is reconciled ?
What is the key used to reconcile the software installation table ?