Pregunta

¿Hay una manera de recuperar los nombres y las correspondientes consultas MDX de gráficos e informes desplegados en un sitio de SharePoint?
Estoy utilizando Microsoft SharePoint 2010

¿Fue útil?

Solución

SharePoint Server 2010 usa el servicio web PPSAuthoringService en lugar de PmService. Si usted no ha visto todavía, echa un vistazo a este post en el blog del equipo de PerformancePoint Servicios: http://blogs.msdn.com/b/performancepoint/archive/2010/09/13/using-the-ppsauthoringservice-web-service.aspx

consulta del informe OLAP se almacena en la propiedad ReportView.CustomData. Algo como esto debería funcionar (aunque este ejemplo llama al servicio web del API). Advertencia -. Estoy un programador aficionado

2/4/11 - en lugar de consultar CustomData puntal del informe como se muestra a continuación, puede pasar sólo la localización informe al método 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);
        }
    }
}

}

Otros consejos

abriría la aplicación diseñador de PPS y se podía ver los nombres de las tablas utilizadas en el salpicadero y en el informe se puede cambiar al modo de diseño para ver la MDX.

De lo contrario, puede también ejecutar SQL para rastrear las consultas enviadas desde PPS a Analysis Services. Usted tiene que ser consciente de que el PPS hace un montón de almacenamiento en caché, creo que es de 10-20 minutos por defecto por lo que si se olvida de que la primera consulta es posible que tenga que esperar un tiempo antes de que la consulta se envía de nuevo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top