Summary
"Licensed from PO" count on the Compliance page of the license this differs from the "Assigned entitlements" count on the Purchases tab of the license.
Symptoms
When viewing the "Licensed from PO" count on the Compliance page of the license this differs from the "Assigned entitlements" count on the Purchases tab of the license. This difference in the count will be a multiplier of value on the Purchases tab of the license. the value on the Purchases tab will be the correct value.
When each individual PO's is viewed there is no duplication of the licenses and there is a one to one relation between each PO and license as expected.
The following example show that the "Licensed from PO" value is 2* the values of the "Assigned entitlements" values on the purchases tab, the "Licensed from PO" count is 1448 and the "Assinged entitlements" count is 724.
License Compliance tab, License from PO:
License Purcahses tab, Assigned entitlements:
Cause
In this instance the duplication has most likely being caused by the same licenses linked multiple times to a single PO's behind the scenes creating duplicates, this has been caused on the past by a Business Adapter creating records in the database as the WebUI only permits the one to one relationship described above.
To determine if this is the case the following SELECT query can be ran on the FNMS database to identify duplicate PO's that have the same license linked multiple times.
SELECT * FROMEntitlementTransaction et JOIN (SELECT etinner.EntitlementTransactionID,ROW_NUMBER() OVER (PARTITION BY etinner.SoftwareLicenseID, etinner.PurchaseOrderDetailID ORDER BY EntitlementRecommendationID DESC) AS RowFROM EntitlementTransactionAccepted etinnerWHERE etinner.EntitlementTransactionTypeID IN (1,4,5,6) -- skip "upgrade" types) et2 ON et.entitlementTransactionID = et2.EntitlementTransactionIDWHERE et2.Row > 1 Resolution
The following query can be used to DELETE these duplicate records from the database, before running the script please ensure there is a backup of the FNMS database.
DELETE et FROM
EntitlementTransaction et
JOIN (
SELECT etinner.EntitlementTransactionID,
ROW_NUMBER() OVER (PARTITION BY etinner.SoftwareLicenseID, etinner.PurchaseOrderDetailID ORDER BY EntitlementRecommendationID DESC) AS Row
FROM EntitlementTransactionAccepted etinner
WHERE etinner.EntitlementTransactionTypeID IN (1,4,5,6) -- skip "upgrade" types
) et2 ON et.entitlementTransactionID = et2.EntitlementTransactionID
WHERE et2.Row > 1
Additional Information
The initial cause of the issue would need to be investigated using the data in the SELECT query to identify the cause of the duplicate linking.