A colleague and I just sat over something that might be interesting. We were wondering why an old subscription was set to "Current" = "yes". Initial reason to look into this license were the two possible issues as marked in the screenshot below.
The online help states a few reasons, why a purchase may be set to "current". None of them do seem to apply in this case. Type is set to Software Subscription and Maintenance is clearly no longer valid.
Solution was that a SKU set for this particular purchase made it behave like a perpetual license, although purchase type is set to "Software Subscription". Once the SKU was removed, the subscription was no longer "current" and also the possible issues were gone.
I thought this might save someone some time. And also maybe Flexera may consider a second note to the online help and mention that the SKUs may overwrite obvious settings.
Oct 07, 2019 09:32 AM
I've been looking into this, also in the context of existing support cases. I think my biggest problem is the lack of transparency in this issue.
Therefore I created a script to analyze if subscriptions should be active by date and active by SKU (and possibly other reasons) and compare those. Please feel free to test it and please let me know, if you found anything.
USE FNMSCompliance IF OBJECT_ID('tempdb..#IsActive', 'U') IS NOT NULL DROP TABLE #IsActive CREATE TABLE #IsActive ( PurchaseOrderDetailID INT ,IsActive INT) DECLARE @SoftwareLicenseID INT; DECLARE @LicenseCursor AS CURSOR; SET @LicenseCursor = CURSOR FOR SELECT SoftwareLicenseID FROM SoftwareLicense OPEN @LicenseCursor FETCH NEXT FROM @LicenseCursor INTO @SoftwareLicenseID WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO #IsActive SELECT PurchaseOrderDetailID, IsActive FROM Grid_PurchaseListModelByLicense(@SoftwareLicenseID, NULL) FETCH NEXT FROM @LicenseCursor INTO @SoftwareLicenseID END CLOSE @LicenseCursor DEALLOCATE @LicenseCursor SELECT PODStatus.* ,CASE WHEN PODStatus.StatusByDate = PODStatus.StatusByFNMS THEN 'OK' ELSE 'Check' END OverallStatus FROM ( SELECT ia.PurchaseOrderDetailID ,pod.ItemDescription ,pod.PartNo ,pod.LicensePartNo ,pod.EffectiveDate ,pod.ExpiryDate ,GETDATE() CurrentDate ,CASE WHEN GETDATE() <= pod.ExpiryDate AND GETDATE() >= pod.EffectiveDate THEN 'active' ELSE 'inactive' END AS StatusByDate ,CASE WHEN ia.IsActive = 1 THEN 'active' ELSE 'inactive' END AS StatusByFNMS FROM #IsActive ia JOIN PurchaseOrderDetail pod ON ia.PurchaseOrderDetailID = pod.PurchaseOrderDetailID WHERE pod.PurchaseOrderDetailTypeID = 11 --Subscription ) PODStatus
Oct 14, 2019 06:12 AM
Unfortunately this is working the same way with scenario where SKU states PO Type = Subscription and manual PO Type = Software. License does not show current = Yes because SKU's PO Type refers to Subscription only.
Is there any fix by Flexera in the meantime?
Feb 08, 2021 06:47 AM