Click or drag to resize
IQMSTakeServerObject Method
Changes the owner of a server object.

Namespace: PIX.Services.V12
Assembly: 
Syntax
void TakeServerObject(
	Guid qvsID,
	string documentName,
	string id,
	string owner
)

Parameters

qvsID
Type: SystemGuid
The ID of a QlikView Server
documentName
Type: SystemString
The full path of the document to retrieve server objects from.
id
Type: SystemString
The id of the server object.
owner
Type: SystemString
The new owner
Remarks
Security note Security Note

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

Examples
The following example finds all server objects in a certain document that belongs to a specific user. Next, the owner of the found server object is changed to another user.

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

             //Get a Qlik View Server
             ServiceInfo qvsService = apiClient.GetServices(ServiceTypes.QlikViewServer).FirstOrDefault();

             if (qvsService != null)
             {
                 //Get all collaboration objects
                 List<ServerObject> serverObjects = apiClient.GetServerObjects(qvsService.ID, "Test.qvw");

                 //Find the ones belonging to johndoe
                 var userObjects = serverObjects.Where(c => c.OwnerId == "Domain\\johndoe").ToList();

                 //Change the owner to someone else.
                 userObjects.ForEach(c => apiClient.TakeServerObject(qvsService.ID, "Test.qvw", c.Id, "Domain\\marysmith"));
             }
         }
         catch (Exception ex)
         {
             Console.WriteLine("An exception occurred: " + ex.Message);
         }
         // wait for user to press any key
         Console.ReadLine();
     }
}
See Also