QlikView Management API 包含分发时出错

QlikView Management API erroring when including distribute

您好,我使用 QMS API 创建了一个任务,并成功填充了所有常规、重新加载和减少选项卡,但我现在在使用分发类别时遇到了问题。我正在尝试 "Distribute to QlikView Server " 并添加一个要分发到的视图用户。除了我在 DocumentTaskScope (DocumentTaskScope.Distribute) 中包含 distribute 时,该任务似乎丢失了对 SourceDocument 的引用并且 reduce 类别被擦除,同时丢失了 general 和 reload 的选项。当我在分发选项卡上单击管理用户时出现的此对话框表明了这一点。

这也是我的分发面板的实际外观,如您所见,它缺少通常应该存在的 "Distribute to QlikView Server" 区域:

这是我的分发部分的代码,我用 C# 编写这个程序,程序构建和执行没有错误,只是没有产生预期的结果。

我在想它是否与服务器名称语法或 ID 成员有关。文档表明这是 "The ID of the QlikView Server. ",所以我使用了 qlikview 服务的 ID,但我不确定这就是它要查找的内容。

//Distribute static ("Manually" in QV Management Console)

        DocumentTask.TaskDistribute.TaskDistributeStatic tds = new DocumentTask.TaskDistribute.TaskDistributeStatic();



        TaskDistributionDestination.TaskDistributionDestinationQlikViewServer tddqvs = new TaskDistributionDestination.TaskDistributionDestinationQlikViewServer();

        tddqvs.Name = "QVS@qlikviewdev";

        tddqvs.Mount = "Root Folder";

        tddqvs.ID = qvsGuid;



        TaskDistributionEntry newEntry = new TaskDistributionEntry();

        newEntry.Destination = new TaskDistributionDestination();

        TaskDistributionDestination tdd = new TaskDistributionDestination();

        TaskDistributionDestinationType tddt = new TaskDistributionDestinationType();

        tddt = TaskDistributionDestinationType.QlikViewServer;

        newEntry.Destination.Type = tddt;

        newEntry.Destination.QlikViewServer = tddqvs;

        TaskDistributionDestination.TaskDistributionDestinationFolder tddf = new TaskDistributionDestination.TaskDistributionDestinationFolder();

        tddf.Name = "N/A";

        newEntry.Destination.Folder = tddf;



        DirectoryServiceObject[] serviceObject = new DirectoryServiceObject[2];

        DirectoryServiceObject dso1 = new DirectoryServiceObject();

        DirectoryServiceObject dso2 = new DirectoryServiceObject();

        dso1.Name = "QlikView_Admin";

        dso1.Type = DirectoryServiceObjectType.Named;

        dso1.OtherProperty = "N/A";

        dso2.Name = "Qlikview_PowerUser";

        dso2.Type = DirectoryServiceObjectType.Named;

        dso2.OtherProperty = "N/A";

        serviceObject[0] = dso1;

        serviceObject[1] = dso2;

        newEntry.Recipients = serviceObject;



        TaskDistributionEntry[] tdeArray = new TaskDistributionEntry[1];

        tdeArray[0] = newEntry;





        tds.DistributionEntries = tdeArray;



        docTask.Distribute = new DocumentTask.TaskDistribute();

        docTask.Distribute.Static = tds;





        DocumentTask.TaskDistribute.TaskDistributeDynamic taskDistributeDynamic = new DocumentTask.TaskDistribute.TaskDistributeDynamic();



        taskDistributeDynamic.Destinations = new List<TaskDistributionDestination>().ToArray();

        taskDistributeDynamic.FieldName = string.Empty;

        taskDistributeDynamic.IdentityType = UserIdentityValueType.DisplayName;



        docTask.Distribute.Dynamic = taskDistributeDynamic;



        DocumentTask.TaskDistribute.TaskDistributeNotification tdn = new DocumentTask.TaskDistribute.TaskDistributeNotification();

        tdn.SendNotificationEmail = false;

        docTask.Distribute.Notification = tdn;



        DocumentTask.TaskDistribute.TaskDistributeOutput tdo = new DocumentTask.TaskDistribute.TaskDistributeOutput();

        tdo.Type = TaskDistributionOutputType.QlikViewDocument;



        docTask.Distribute.Output = tdo;

原来我为 TaskDistributionDestinationQlikViewServer 对象的 ID 字段使用了错误的 GUID。一旦我将它设置为 QVS@(servername) 服务的 ID,它就起作用了。