配信拡張機能の概要

ユーザーは SQL Server Reporting Services により、作成およびパブリッシュ後にさまざまな場所に配信できるレポートを作成およびパブリッシュできます。 さらに、Reporting Services には、複数の配信拡張機能と配信 API が含まれています。これにより、開発者はより多くの配信拡張機能を作成して、Reporting Services の配信機能をさらに拡張できます。

次の表は、Reporting Services が備えている配信拡張機能を示しています。

配信拡張機能 説明
レポート サーバーの電子メール SMTP サーバーを使用して個々のユーザーまたはグループに電子メールでレポートを送信します。
レポート サーバーのファイル共有 組織内のレポートをネットワーク ファイル共有に配布するときに使用します。 指定されたスケジュールでレポートをファイル共有に自動的にコピーできます。

Screenshot of the Reporting Services delivery extension architecture.

Reporting Services 配信拡張機能のアーキテクチャ。

配信拡張機能はサブスクリプションと対になっています。 ユーザーは、サブスクリプションを作成するときに、使用可能な配信拡張機能のいずれかを選択して、レポートの配信方法を決定できます。 Reporting Services では、サブスクリプションはレポート サーバー データベースに置かれます。 イベントが発生すると、Reporting Services はレポート サーバー データベースにあるサブスクリプションとイベントを照合します。 イベントに関連付けられたサブスクリプションごとに、レポート サーバーは通知を作成します。 データ ドリブン サブスクリプションの場合、受信者ごとに通知が作成されます。 通知が作成されると、レポート サーバーでは特定の配信拡張機能を呼び出し、通知に指定された拡張機能設定の値を渡します。 配信拡張機能は、選択された配信拡張機能により指定されたユーザーに通知を送信します。

配信拡張機能では、Reporting Services 配信拡張機能 API を実装します。 Reporting Services 配信拡張機能 API をサポートすることで、配信拡張機能はレポート サーバーから通知を受信し、通知の状態を提供できます。

レポート サーバーは、通知とレポートの配信先を管理しません。 配信先情報の収集は、配信拡張機能に記述するコードで実行されます。

サブスクリプションと配信拡張機能

クライアント アプリケーションでは、レポート サーバー Web サービスの 2 つのメソッド CreateSubscription および CreateDataDrivenSubscription を使用して、配信拡張機能を使用するサブスクリプションを作成します。 既存のサブスクリプションを変更する場合は、SetSubscriptionProperties および SetDataDrivenSubscriptionProperties メソッドを使用します。 ユーザーは、サブスクリプションを作成するときに、サブスクリプションの配信拡張機能も選択し、必要な拡張機能設定の値を入力します。 ユーザーがサブスクリプションを保存すると、そのサブスクリプションはレポート サーバー データベースに格納されます。 サブスクリプションではスケジュールまたはイベントに基づいて通知が作成されます。 配信が始まると、最初に、選択された配信拡張機能が構成ファイルから構成データを読み込みます。 次に、サブスクリプションの拡張機能設定が取得され、値が設定されます。 最後に、Deliver メソッドが呼び出され、通知が送信されます。

開発者の要件

Reporting Services 配信拡張機能を開発するための要件は次のとおりです。

  • レポート サーバーがインストールされた配置用コンピューター

  • Visual Studio 2008 または Microsoft.NET Framework Software Development Kit (SDK) がインストールされた開発用コンピューター。

  • Reporting Services 機能、特にサブスクリプション機能と配信機能についてよく理解していること。

  • レポート マネージャー用に独自のサブスクリプション ユーザー インターフェイスを実装する予定の場合は、ASP.NET コントロールと Web コントロールについて詳しい理解を深めます。

  • Microsoft Visual C# や MicrosoftVisual Basic .NET など、.NET Framework 言語による開発経験があること。