Setting up SW model for entitlements that the product has different entitlements
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-22-2025 08:00 AM
We are new users to SAM Pro and wanted to see if people had advice for how we should set up a software model for a product that is in the content library as a single product (PingFederate) and the content library has both of the PPN's that the vendor provided for us on the single product. However, the invoice we received from the vendor shows that one of the PPN's is for the PingFederate product for "Customer Identities" and the other PPN is for the PingFederate product for "Workforce Identities" both of which have different quantities. These are products that will never be discovered and we will need to set up a resource consumption. Should we set up separate software models with "PingFederate" as the product for each of the entitlements? We discussed possibly adding an edition for each of the different PPN's. Has anyone encountered a situation like this and how did you handle it?
- Labels:
-
software model
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-22-2025 11:14 AM
Hi @meganfisher,
when talking about "Customer Identities" and "Workforce Identities" these are license metric for your product PingFederate. ServiceNow SAM Pro currently only supports common metrics that can be reliably read via inventory solutions (Discovery, SCCM), SaaS, or other integrations (Oracle GLAS, SAP). Specific manufacturer metrics are not supported. This can be clearly seen in the PPN mentioned, as the Metrics field is empty.
From a data model perspective, there is a software model that defines the product in your configuration (edition/version, if applicable) and then the different metrics for this product, which are defined via the linked entitlements.
Unfortunately, the problem with the “Resource Consumption” metric is that it only applies at the software model level and does not take into account the individual metrics of the CS/WF entitlements, summarizing everything into a single quantity, same for multiple resource consumption. Example with 100 use rights per metric and two resource values as consumption)
I'll post a possible solution later as a second answer.
Best, Dennis
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-22-2025 10:29 PM
Hi @meganfisher,
my possible solution is based on custom metrics and a small adjustment of the custom metric script, because by default SAM Pro is unable to handle multiple custom metrics per software product.
1. Create two new custom metrics and adjust the script to allow multiple metrics per product (software model)
- License metric name: "(PingFederate) Customer Identities"
- Table source: Resource Value
- Custom metric script adjustment (replace the script code below the comment with the following)
- Adjustments: The example script includes a "*2" multiplication which I removed. Added a name variable to compare the resource value name with the custom metric name to allow multiple custom metrics per software model
getRightsForResourceValue();
function getRightsForResourceValue(){
var rightsForResourceValue = -1;
var resourceValueRecord = new GlideRecord('samp_sw_resource_value');
// query the resource value record for the entity
if(resourceValueRecord.get(entity)){
var name = resourceValueRecord.getValue('name')
if(name === '(PingFederate) Customer Identities'){
// set the rights to the amount of count in resource value table
rightsForResourceValue = resourceValueRecord.getValue('units_consumed');
}
}
return rightsForResourceValue;
}
- Perform the same steps for your second custom metric and update the name variable
2. Change software entitlement metric to custom metric
3. Change Resource value name to custom metric name
4. Run reconcile
- Each custom metric is now linked to a unique resource value consumption and the results are split into each custom metric
Hope this helps! ( @Omar KHAL final solution added, FYI)
Best, Dennis