Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
We have limited user cal license to access the QlikView, hence we created a program which automatically removes or frees inactive user who did not access for over 24 hours quarantined period.
The program designed to removing the user who's "LastUsed" time period is over 24 hours, however on some instance its not deleting the user rather its flagging/marking the user for delete. This prevents user from accessing the report for additional 24 hours from the time its marked.
We originally thought may be we has problem calculating the "LastUsed" date value, so we created log to record the date and time before deleting. The user which are being flagged has well over 24 hrs reported as "LastUsed" in log, yet its not deleting the user rather marking for delete. Not sure what we are missing, we would appreciate any sort of help to address this issue
QlikView has it's own quarantine time of 24 hours. Once you delete the user qv would wait to see if the user tries and uses the CAL within next 24 hours, otherwise it would 'Delete' the user; until then it's 'marked for deletion'.
Hi,
"Marked for deletion" means that when your program tried to delete the assignment of that Document CAL it was being used, therefore not deleted. If you delete it manually there shouldn't be any problem.
Miguel
We check for the "LastUsed" date to be over 24 hours before deleting and most of the time it Delete's the user without any issue. Very few instance its "Marking the user for Delete" and blocking the user from accessing the system, in that scenario we had to Login as admin and release or delete the user permanently.
We followed the instruction from this link to create the program, QlikView Management API - #3 Export / Add / Delete Named CALs
I am not sure if there is a way to check the Quarantine time instead of "LastUsed"
Miguel,
I am looking for a way to track if the user is currently using the system prior to delete, so I can avoid deleting the user in first place. Unfortunately as mentioned in my original post the "LastUsed" value shows old Login date but not reflecting the current time, not sure if you understand. Currently we have operators check the "Assigned CALs" screen each morning in QlikView Management console to release users which are "marked for delete", we are trying to eliminate this step.
Thank you
Hi,
I think I'm facing the same issue. But please let me check with you first that do you compare the LastUsed value with UTC time or Machine/Local time? Because LastUsed value is always UTC time not the Machine/Server Local time. If you have already used UTC time then we are absolutely facing the same problem. If not, you can change your program to something like....
if (currentCALs.LastUsed < DateTime.UtcNow.AddHours(-24))
{
currentCALs.Remove(currentCALs);
}
Cheers!
Try this..... it works for me so far...
static void ReleaseQuarantinedCAL()
{
QMSClient Client;
string QMS = ConfigurationManager.AppSettings["QVServer"];
Client = new QMSClient("BasicHttpBinding_IQMS", QMS);
string key = Client.GetTimeLimitedServiceKey();
ServiceKeyClientMessageInspector.ServiceKey = key;
ServiceInfo[] MyQVS = Client.GetServices(ServiceTypes.QlikViewServer);
CALConfiguration myCALs = Client.GetCALConfiguration(MyQVS[0].ID, CALConfigurationScope.NamedCALs);
List<AssignedNamedCAL> currentCALs = myCALs.NamedCALs.AssignedCALs.ToList();
int intCALs = currentCALs.Count;
for (int i = 0; i < intCALs; i++)
{
if (currentCALs.QuarantinedUntil.Year > 1)
{
currentCALs.QuarantinedUntil = new DateTime(1, 1, 1);
}
}
myCALs.NamedCALs.AssignedCALs = currentCALs.ToArray();
Client.SaveCALConfiguration(myCALs);
}
I checked the QuarntinedUntil and its always 1/1/1900 and unable to use this field for my use. This field has value only after I mark for delete
I have created an app using the QMS API code to remove the DOC CALs. It executes without any error (I can successfully step onto each line of code and confirm no error). But it doesn't remove the DOC license from the document? Here is a piece of code that removes the license. Can somebody notice anything wrong here? Thank you,