Click or drag to resize
IQMS2GetCALConfiguration Method
Gets the current session/document and named CAL configuration from a QVS.

Namespace: PIX.Services.V12.Api2
Assembly: 
Syntax
CALConfiguration GetCALConfiguration(
	Guid qvsID,
	CALConfigurationScope scope
)

Parameters

qvsID
Type: SystemGuid
The QVS ID.
scope
Type: PIX.QMSAPI.DataObjectsCALConfigurationScope
The scope.

Return Value

Type: CALConfiguration
If successful, the CAL configuration is returned.
Exceptions
ExceptionCondition
ExceptionThrown if there were any problems retrieving the CAL configuration.
Remarks
Security note Security Note

Requires membership of local groups QlikView Management API and QlikView Administrator.

Examples
The following code example retrieves the CAL information from a QVS and prints information to the console.

The service key injection is assumed to be handled behind the scenes. For an example of how to inject the service key, see Samples.

C#
using System;
using System.Collections.Generic;
using System.Linq;
using QMSAPI;

class Program
{
    static void Main(string[] args)
    {
        try
        {
           // create a QMS API client
           IQMS apiClient = new QMSClient();

           //retrieve a time limited service key
           ServiceKeyClientMessageInspector.ServiceKey = apiClient.GetTimeLimitedServiceKey();
           ServiceInfo qvsService = apiClient.GetServices(ServiceTypes.QlikViewServer).First();

           CALConfiguration config = apiClient.GetCALConfiguration(qvsService.ID,CALConfigurationScope.All);
           if(config != null)
           {
               //Document CALs
               Console.WriteLine("Document CALs\n");
               Console.WriteLine("# assigned document CALs:" + config.DocumentCALs.Assigned);
               Console.WriteLine("# in license document CALs:" + config.DocumentCALs.InLicense);
               Console.WriteLine("# limit document CALs:" + config.DocumentCALs.Limit);

               //Named CALs
               Console.WriteLine("\n\nNamed CALs\n");
               Console.WriteLine("Identification mode:" + config.NamedCALs.IdentificationMode);
               Console.WriteLine("# assigned named CALs:" + config.NamedCALs.Assigned);
               Console.WriteLine("# in license named CALs:" + config.NamedCALs.InLicense);
               Console.WriteLine("# limit document CALs:" + config.NamedCALs.Limit);
               config.NamedCALs.AssignedCALs.ForEach(
                   assignedCal => Console.WriteLine(String.Format("User:{0}\nLast used:{1}", assignedCal.UserName, assignedCal.LastUsed))
                   );

               config.NamedCALs.LeasedCALs.ForEach(
                   leasedCal => Console.WriteLine(String.Format("User:{0}\nLast used:{1}", leasedCal.UserName, leasedCal.LastUsed))
                   ); 

               //Session CALs
               Console.WriteLine("\n\nSession CALs\n");
               Console.WriteLine("# available session CALs:" + config.SessionCALs.Available);
               Console.WriteLine("# in license session CALs:" + config.SessionCALs.InLicense);
               Console.WriteLine("# limit session CALs:" + config.SessionCALs.Limit);
           }
        }
        catch (Exception ex)
        {
            Console.WriteLine("An exception occurred: " + ex.Message);
        }
        // wait for user to press any key
        Console.ReadLine();
    }
}
See Also