【问题标题】:QlikView Management API erroring when including distribute包含分发时的 QlikView Management API 错误
【发布时间】:2016-11-15 05:53:48
【问题描述】:

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

这也是我的分发面板的实际外观,您可以看到它缺少通常应该存在的“分发到 QlikView 服务器”区域:

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

我在想它是否与服务器名称语法或 ID 成员有关。文档表明这是“QlikView 服务器的 ID。”,所以我使用了 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;

【问题讨论】:

    标签: c# .net qlikview


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-04-22
      • 2015-10-07
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多