mfranz
Trusted advisor

No clue why an old subscription is set to current = yes?

Hi,

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.

2019-10-07.jpg

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.

2019-10-07_16h05_06.png

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.

Best regards,

Markward

Softline Group is Europe's leading independent expert in Software Asset Management.
3 Replies
mfranz
Trusted advisor

Hi,

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

Best regards,

Markward

Softline Group is Europe's leading independent expert in Software Asset Management.
davidstrickrodt
Occasional contributor

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?

 

Thank you!

Yo Dave,

Afaik there's no fix, because this is not considered a bug. Workaround is still to disable the SKU by adding a character, e.g. #.

Best regards,

Markward

Softline Group is Europe's leading independent expert in Software Asset Management.