現象
次のような状況で問題が発生します。
-
Microsoft SharePoint リストまたはドキュメントライブラリの microsoft SQL Server Reporting Services 2008 R2 (SSRS 2008 R2) または Microsoft SQL Server Reporting Services 2012 (SSRS 2012) レポートがある。
-
このレポートでは、組み込みの SQL Server Reporting Services SharePoint リストのデータ拡張機能を使用しています。
-
SharePoint リストまたはドキュメントライブラリに基づいてデータセットクエリを作成し、そのクエリをレポートデザイナーで実行します。
-
SharePoint リストまたはドキュメントライブラリをホストしている SharePoint ファームにレポートを展開します。
この状況では、データセットクエリは、SharePoint ファームのレポートデザイナーとは異なる結果を返します。たとえば、SharePoint で新しいビューを作成すると、ドキュメントライブラリの [ フォルダーを表示せずにすべてのアイテムを表示 する] オプションが選択されます。 新しいビューをドキュメントライブラリの既定のビューとして設定します。 この状況では、レポートは SharePoint ファームのレポートデザイナーとは異なるデータを返します。注:レポートを SharePoint サイトに展開する場合は、ドキュメントライブラリの最上位レベルのフォルダーとファイルのみが返されます。 ただし、レポートデザイナーは、フォルダーの場所に関係なく、既定のビューの変更を反映するすべてのファイルを返します。
原因
この問題は、SharePoint がリストと同じファームでレポートを実行するときに、SSRS 2008 R2 または SSRS 2012 によって実行されるさまざまなコードパスが原因で発生します。 ローカルの SharePoint ファームでレポートが実行されると、リストは、"メディアの 接続 パス" によって取得されます。 パスは SOAP 呼び出しのない SharePoint リストから直接読み取られ、既定のビュー構成なしでリスト情報のローカルコピーを構築します。 そのため、[ 接続 パス] には、既定のビューの変更が反映されません。 ただし、レポートデザイナーでレポートが実行されると、レポートでは SPRemoteConnection path が使用されます。 このパスでは、 Getlistcollection 関数に似た SOAP 呼び出しを使用します。 この関数は、ローカル接続ではなくリモートの HTTP 接続を介してサイトにアクセスします。 そのため、変更は既定のビュー構成に反映されます。
回避策
この問題を回避するには、以下のいずれかの方法を使用します。
-
レポートをネイティブモードのレポートサーバーに展開し、ネイティブモードのレポートサーバーからレポートを実行します。 注: SharePoint でレポートを表示する必要がある場合は、ネイティブモードのレポートビューアー Web パーツを SharePoint にインストールしてから、Reporting Services のネイティブインスタンスからレポートを呼び出します。 SharePoint Web パーツを使用してネイティブモードレポートを表示および調査する方法の詳細については、次の MSDN web サイトを参照してください。
-
レポートの展開先のファームによってアクセスできる別の SharePoint ファームに SharePoint リストまたはドキュメントライブラリを展開します。 したがって、ローカルファーム内のレポートでは、リストにリモートからアクセスできます。
-
XML データ拡張機能を使用して、SharePoint リストのデータ拡張機能を使わずに XML クエリを作成します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。