SharePoint サイトに展開されたグラフとレポートの名前と対応する mdx クエリを取得する方法はありますか?
私はShrepoint 2010を使用しています
2 に答える
SharePoint Server 2010 は、PmService の代わりに PPSAuthoringService Web サービスを使用します。まだご覧になっていない場合は、PerformancePoint Services チームのブログ ( http://blogs.msdn.com/b/performancepoint/archive/2010/09/13/using-the-ppsauthoringservice-web-service) の投稿をご覧ください。 aspx
OLAP レポートのクエリは、ReportView.CustomData プロパティに格納されます。このようなものは機能するはずです (この例では API から Web サービスを呼び出しますが)。警告 -- 私はアマチュア プログラマーです。
2011 年 2 月 4 日 -- 以下に示すように、レポートの CustomData プロパティをクエリする代わりに、レポートの場所を 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 デザイナー アプリケーションを開くと、ダッシュボードで使用されているチャートの名前が表示され、レポートからデザイン モードに切り替えて MDX を表示できます。
それ以外の場合は、SQL プロファイラーを実行して、PPS から Analysis Services に送信されたクエリをトレースすることもできます。PPS は多くのキャッシュを行うことに注意する必要があります。デフォルトでは 10 ~ 20 分だと思います。そのため、最初のクエリを見逃した場合、クエリが再度送信されるまでしばらく待つ必要がある場合があります。