レポート プロセッサ

レポート プロセッサは、レポートの処理のほか、アドホック レポートに使用されるレポート モデルの処理を行う、レポート サーバー インスタンスの内部コンポーネントです。

レポート処理の概要

レポート処理とは、レポート定義内の静的な命令を、レンダリング可能な最終的な表示形式へと変換する一連の処理過程を表します。次の図は、レポート処理の各段階と要素を示しています。

レポート処理図

レポート処理の図

要求時またはプッシュ アクセスでレポートがアクセスされると、レポート サーバーでは、エンド ツー エンドで処理を行うか、後から特定の形式で表示できるように、あらかじめ処理され、中間形式で保存されたレポートを返します。どちらの処理が行われるかは、レポート実行設定によって決まります。レポート サーバー管理者が、レポートをキャッシュから取得するか、スナップショットとして取得するように指定している場合、レポート サーバー データベースからレポートの中間形式が取得され、表示用にレンダリングされます。それ以外の場合、処理のすべての工程が実行されます。

レポート処理の要求

レポート プロセッサは次の要求に応答します。

  • オンデマンド レポートの要求。要求時に実行するように構成されたレポートをユーザーが開く操作により、レポート サーバー上でレポート処理が開始されます。レポート プロセッサはレポート定義を取得し、データの要求をデータ処理拡張機能に送信します。次に、レポート定義とデータを結合し、それを表示拡張機能に送信して、レンダリングされたレポートを返します。オンデマンドのレポート処理は、モデル ベースのレポートにおけるユーザーの操作に呼応して発生する場合もあります。ユーザーが、モデル ベースのレポートでデータ パスをたどると、一時的なクリックスルー レポートに対する一連の要求がトリガされます。

  • キャッシュされたレポートの要求。キャッシュされたレポートの処理は、Web サービス内で実行されるオンデマンド レポート処理の一種です。キャッシュされたコピーから取得するように構成されたレポートをユーザーが開こうとしたときに、キャッシュされたコピーの有効期限が切れていると、レポート処理が開始されます。この場合、レポートは再処理後、キャッシュに戻され、ユーザーのブラウザに送信されます。

  • スケジュールおよび配信のプロセッサからの要求。スケジュールされたレポート処理は、レポート サーバーによって開始され、バックグラウンドで実行されます。レポート処理とレポート配信に対するすべてのプッシュ アクセスは、レポート サーバーのスケジュールおよび配信のプロセッサ コンポーネントによって処理されるイベントおよびスケジュールによって開始されます。レポート プロセッサは要求を受け取ると、レポート定義を取得し、データの要求をデータ処理拡張機能に送信します。次に、レポート定義とデータを結合し、コンパイルしたレポートをレポート サーバー データベースに格納します。

レポート処理の段階

レポートの実行時に、レポート サーバーはレポート処理、データ処理、およびレンダリングの 3 つの工程でレポートを処理します。レポート定義に基づいてデータ処理およびレポート処理が実行され、中間形式のレポートが生成されます。中間形式のレポートは、後から特定の表示形式でレンダリングされます。

レポート定義の取得

レポート処理は、パブリッシュ済みのレポート定義を使用して開始されます。レポート定義は、1 つ以上のクエリ、レイアウト情報、およびコードの参照または式を含んでいます。レポート プロセッサはレポート サーバー データベースからレポート定義を取得し、式の中のパラメータと変数を初期化し、データのレポートを準備するその他の事前処理を実行します。その後、データ処理拡張機能がデータ ソースに接続し、データを取得します。

データの処理

データの処理は、データベース サーバー上で実行されます。一般に、レポートのデータを静的なデータ ファイルまたは XML ドキュメントから取得する場合は、これらのファイルを取得して、そのデータをレポート サーバーに返すだけの処理になります。

データとレイアウトをマージして中間形式を生成する

返されたデータは、レポート定義内のレイアウト情報とマージされて、中間形式のレポートが生成されます。この中間形式のレポートは、高速にレポートを取得できるように保存されるか、ユーザーが実際に見ることになる形式に加工するための処理表示拡張機能に送信されます。データは各セクションの行ごとに処理されます。セクションには、レポートのヘッダーとフッター、グループのヘッダーとフッター、および詳細が含まれます。集計関数と式も、このときに処理されます。

スナップショットとして実行するように構成されたレポートや、レポート履歴に保持されるレポートは常に、その時点で最新のレポート データとレイアウト情報を含んだ中間形式で保存されます。

レポート サーバーは、この中間形式のレポートをさまざまな方法で使用できます。キャッシュ、スナップショット、およびレポート履歴は、すべて中間形式で保存されたレポートを使用する機能です。中間形式の特長は、汎用性に優れていることです。レポート サーバーがサポートし、また、レポート サーバーに導入されている、あらゆるエクスポート形式でレンダリングできます。

注意注意

中間形式はアプリケーションの内部的な形式です。中間形式のレポートをカスタム アプリケーションで扱うためには、スナップショットを作成または取得するプログラム インターフェイスを使用する必要があります。

レポートのレンダリング

レポートの中間形式が生成されると、そのレポートを表示形式としてレンダリングできるようになります。レンダリングされたレポートは共通言語ランタイム アセンブリとしてコンパイルされ、レポート サーバーで実行されます。

表示拡張機能は、レンダリング段階でレポートにページ番号を付け、実行段階の間に処理できない式を処理します。その後、レポートが、デバイス固有の適切な形式でレンダリングされます。

モデル処理とクリックスルー レポート

レポートでは、基になるデータ ソースへのインターフェイスとしてレポート モデルを使用できます。モデルはメタデータを指定し、データ接続を定義する共有データ ソースへの参照を含みます。モデル処理は、ユーザーの次のアクションが実行されるたびに、レポート サーバー上で発生します。

  • レポート ビルダでのモデルの検索。

  • レポート ビルダでレポートを構築するときのモデル データのクエリ。

  • レポート サーバーに保存されているクリックスルー レポートのナビゲート。

クリックスルー レポートの処理は、レポート定義の処理と似ています。ただし、クリックスルー レポートの処理では、レポートが、サーバーにパブリッシュされたレポート定義からではなく、モデルから自動的に生成されます。データ処理は、対象のデータを取得するためのモデルを通じて開始されます。