Click or drag to resize
IQMS2ClearQVSCache Method
Clears the QlikView Server cache of the QlikView Management Service from the specified cache objects.

Namespace: PIX.Services.V12.Api2
Assembly: 
Syntax
void ClearQVSCache(
	QVSCacheObjects objects
)

Parameters

objects
Type: PIX.QMSAPI.DataObjectsQVSCacheObjects
The cache objects to clear.
Remarks
Security note Security Note

Requires membership of local group QlikView Management API and the role Document Folder Administrator.

Examples
The following code example uses the QMS API to clear the QlikView Server cache, retrieve a registered QlikView Server and all its user documents. The names and paths of the user documents are then printed. If anything goes wrong, it prints an error message.

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.IO;
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();

            // clear the QMS's QVS object cache from user document listings
            // so that the any new user documents can be discovered
            apiClient.ClearQVSCache(QVSCacheObjects.UserDocumentList);
            // get a list of QVS services
            List<ServiceInfo> qvsServices = apiClient.GetServices(ServiceTypes.QlikViewServer);
            if (qvsServices.Count > 0)
            {
                // retrieve all user documents for the first QVS in the list
                List<DocumentNode> userDocuments = apiClient.GetUserDocuments(qvsServices[0].ID);
                // print the names of all user documents
                Console.WriteLine("The " + qvsServices[0].Name + " contains the following user documents:" + Environment.NewLine);
                foreach (DocumentNode userDocument in userDocuments.OrderBy(x => x.RelativePath).ThenBy(x => x.Name))
                {
                    Console.WriteLine(Path.Combine(userDocument.RelativePath, userDocument.Name));
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("An exception occurred: " + ex.Message);
        }
        // wait for user to press any key
        Console.ReadKey();
    }
}
See Also