Existe-t-il un moyen de récupérer les noms et les requêtes mdx correspondantes des diagrammes et des rapports déployés sur un site SharePoint? J'utilise Shrepoint 2010Récupération de MDX à partir du tableau de bord pps déployé sur la collection de sites Sharepoint
Répondre
Si vous ne l'avez pas encore vu, consultez ce post sur le blog de l'équipe PerformancePoint Services: http://blogs.msdn.com/b/performancepoint/archive/2010/09/13/using-the-ppsauthoringservice-web-service.aspx
La requête du rapport OLAP est stockée dans la propriété ReportView.CustomData. Quelque chose comme ceci devrait fonctionner (même si cet exemple appelle le service Web de l'API). Attention - Je suis un programmeur amateur. - Au lieu d'interroger le paramètre CustomData du rapport comme indiqué ci-dessous, vous pouvez simplement transmettre l'emplacement du rapport à la méthode 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);
}
}
}
}
Vous ouvrez l'application de conception PPS et vous pouvez voir les noms des graphiques utilisés sur le tableau de Sinon, vous pouvez également exécuter SQL Profiler pour suivre les requêtes envoyées par PPS à Analysis Services. Vous devez être conscient que PPS fait beaucoup de mise en cache, je pense qu'il est 10-20 minutes par défaut, donc si vous manquez cette première requête, vous devrez attendre un certain temps avant que la requête est envoyée à nouveau. SharePoint Server 2010 utilise le service Web PPSAuthoringService à la place de PmService.
trop de choses sur PPS, ce ne est pas pratique de le faire, ne peut pas utiliser le profileur pour la même raison, il y avait une façon de le faire dans la version précédente de sharepoint l'PMService a fait la travail, maintenant il n'existe pas :( – Shekhar