【问题标题】:Retrieve MDX from pps dashboard deployed on Sharepoint Site Collection从部署在 Sharepoint 网站集上的 pps 仪表板中检索 MDX
【发布时间】:2010-12-07 05:15:11
【问题描述】:

有没有办法检索部署在共享点站点上的图表和报告的名称和相应的 mdx 查询?
我正在使用 Shrepoint 2010

【问题讨论】:

    标签: sharepoint-2010 mdx performancepoint


    【解决方案1】:

    SharePoint Server 2010 使用 PPSAuthoringService Web 服务而不是 PmService。如果您还没有看到它,请查看 PerformancePoint Services 团队博客上的这篇文章:http://blogs.msdn.com/b/performancepoint/archive/2010/09/13/using-the-ppsauthoringservice-web-service.aspx

    OLAP 报表的查询存储在 ReportView.CustomData 属性中。这样的事情应该可以工作(即使此示例从 API 调用 Web 服务)。警告——我是一个业余程序员。

    2/4/11 -- 您可以将报告位置传递给 GetMdx 方法,而不是如下所示查询报告的 CustomData 属性。

    static void Main(string[] args)
    {
        string pathToAuthoringService = "http://<serverName>/_vti_bin/PPS/PPSAuthoringService.asmx";
        IBIMonitoringAuthoring service = BIMonitoringAuthoringServiceProxy.CreateInstance(pathToAuthoringService);
    
        string listUrl = "/BICenter/Lists/PerformancePoint Content/";
        FirstClassElementCollection fcos = service.GetListItems(listUrl);
        Dashboard dashboard = new Dashboard();
    
        foreach (FirstClassElement fco in fcos)
        {
            if (fco.ContentType == FCOContentType.PpsDashboard && fco.Name.Text == "Contoso Sales Management")
            {
                dashboard = fco as Dashboard;
            }
        }
    
        // Or if you know the ItemUrl, you can retrieve the dashboard directly.
        //RepositoryLocation dashboardLocation = new RepositoryLocation("/BICenter/Lists/PerformancePoint Content/32._000");
        //Dashboard dashboard = service.GetDashboard(dashboardLocation);
    
        List<RepositoryLocation> childLocations = dashboard.GetChildFCOLocations();
        foreach (RepositoryLocation location in childLocations)
        {
            if (location.ItemType == FirstClassObjectType.ReportView)
            {
                ReportView report = service.GetReportView(location);
    
                if (report.IsAnalyticReport())
                {
                    Console.WriteLine(report.CustomData);
            }
        }
    }
    

    }

    【讨论】:

      【解决方案2】:

      您将打开 PPS 设计器应用程序,您可以看到仪表板上使用的图表的名称,您可以从报告中切换到设计模式以查看 MDX。

      否则,您还可以运行 SQL Profiler 来跟踪从 PPS 发送到 Analysis Services 的查询。您必须注意 PPS 会进行大量缓存,我认为默认情况下为 10-20 分钟,因此如果您错过了第一个查询,您可能需要等待一段时间才能再次发送查询。

      【讨论】:

      • PPS 上的东西太多,做起来不切实际,同样的原因不能使用分析器,在以前版本的 sharepoint 中有一种方法可以做到这一点,PMService 完成了这项工作,现在它不存在 :(
      猜你喜欢
      • 1970-01-01
      • 2011-06-29
      • 2010-10-19
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      相关资源
      最近更新 更多