Восстановление MDX из панели мониторин PPS развернута на коллекции сайта SharePoint

StackOverflow https://stackoverflow.com/questions/4373624

Вопрос

Есть ли способ извлечь названия и соответствующие MDX запросы графиков и отчетов, развернутых на сайте SharePoint?
Я использую SHREPOINT 2010

Это было полезно?

Решение

SharePoint Server 2010 использует веб-сервис PPSAuthoringservice вместо Pmservice. Если вы еще не видели его, ознакомьтесь с этим постом в блоге Team Team Team: http://blogs.msdn.com/b/performancePoint/archive/2010/09/13/using-the-ppsauthoringservice-web-service.aspx.

Запрос отчета OLAP хранится в свойстве ReportView.customdata. Что-то вроде этого должно работать (даже если этот пример вызывает веб-сервис от API). Предупреждение - я любительский программист.

2/4/11 - вместо того, чтобы запросить отчетную репортачку отчета, как показано ниже, вы можете просто передать местоположение отчета в метод GetMDX.

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

}

Другие советы

Вы откроете приложение PPS Designer, и вы можете увидеть имена графиков, используемых на приборной панели, и из отчета, который вы можете переключиться в режим дизайна, чтобы увидеть MDX.

В противном случае вы также можете запустить SQL Profiler, чтобы проследить запросы, отправленные из PPS для анализа услуг. Вы должны знать, что PPS делает много кэширования, я думаю, что это 10-20 минут по умолчанию, поэтому, если вы пропустите этот первый запрос, вам может потребоваться подождать, пока запрос будет снова отправлен.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top