ReportingService2005.CreateSubscription メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
レポート サーバー データベース内の指定したレポートのサブスクリプションを作成します。
public:
System::String ^ CreateSubscription(System::String ^ Report, ReportService2005::ExtensionSettings ^ ExtensionSettings, System::String ^ Description, System::String ^ EventType, System::String ^ MatchData, cli::array <ReportService2005::ParameterValue ^> ^ Parameters);
public string CreateSubscription (string Report, ReportService2005.ExtensionSettings ExtensionSettings, string Description, string EventType, string MatchData, ReportService2005.ParameterValue[] Parameters);
member this.CreateSubscription : string * ReportService2005.ExtensionSettings * string * string * string * ReportService2005.ParameterValue[] -> string
Public Function CreateSubscription (Report As String, ExtensionSettings As ExtensionSettings, Description As String, EventType As String, MatchData As String, Parameters As ParameterValue()) As String
パラメーター
- Report
- String
サブスクリプションを作成するレポートの完全なパス名です。
- ExtensionSettings
- ExtensionSettings
配信拡張機能固有の設定の一覧を格納した ExtensionSettings オブジェクトです。
- Description
- String
ユーザーに対して表示される説明文です。
- EventType
- String
サブスクリプションを開始するイベントの種類です。 有効な値は TimedSubscription
または SnapshotUpdated
です。
- MatchData
- String
指定した EventType
パラメーターに関連付けられているデータ。 このパラメーターは、サブスクリプションと発生したイベントの照合のために、イベントで使用されます。
- Parameters
- ParameterValue[]
レポートのパラメーターの一覧を表す ParameterValue オブジェクトの配列です。
戻り値
レポート サーバー データベースのサブスクリプションを一意に識別するサブスクリプション ID です。
例
このコード例をコンパイルするには、Reporting Services の WSDL を参照し、特定の名前空間をインポートする必要があります。 詳細については、「 コード例のコンパイルと実行」を参照してください。 次のコード例では、CreateSubscription を使用して新しいサブスクリプションをレポート サーバー データベースに追加します。
Imports System
Imports System.Web.Services.Protocols
Class Sample
Public Shared Sub Main()
Dim rs As New ReportingService2005()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim report As String = "/SampleReports/Employee Sales Summary"
Dim desc As String = "Send email to anyone@microsoft.com"
Dim eventType As String = "TimedSubscription"
Dim scheduleXml As String = "<ScheduleDefinition><StartDateTime>2003-02-24T09:00:00-08:00</StartDateTime><WeeklyRecurrence><WeeksInterval>1</WeeksInterval><DaysOfWeek><Monday>True</Monday></DaysOfWeek></WeeklyRecurrence></ScheduleDefinition>"
Dim extensionParams(7) As ParameterValue
extensionParams(0) = New ParameterValue()
extensionParams(0).Name = "TO"
extensionParams(0).Value = "dank@adventure-works.com"
extensionParams(1) = New ParameterValue()
extensionParams(1).Name = "ReplyTo"
extensionParams(1).Value = "reporting@adventure-works.com"
extensionParams(2) = New ParameterValue()
extensionParams(2).Name = "IncludeReport"
extensionParams(2).Value = "True"
extensionParams(3) = New ParameterValue()
extensionParams(3).Name = "RenderFormat"
extensionParams(3).Value = "MHTML"
extensionParams(4) = New ParameterValue()
extensionParams(4).Name = "Subject"
extensionParams(4).Value = "@ReportName was executed at @ExecutionTime"
extensionParams(5) = New ParameterValue()
extensionParams(5).Name = "Comment"
extensionParams(5).Value = "Here is your daily sales report for Michael."
extensionParams(6) = New ParameterValue()
extensionParams(6).Name = "IncludeLink"
extensionParams(6).Value = "True"
extensionParams(7) = New ParameterValue()
extensionParams(7).Name = "Priority"
extensionParams(7).Value = "NORMAL"
Dim parameter As New ParameterValue()
parameter.Name = "EmpID"
parameter.Value = "38"
Dim parameters(1) As ParameterValue
parameters(0) = parameter
Dim matchData As String = scheduleXml
Dim extSettings As New ExtensionSettings()
extSettings.ParameterValues = extensionParams
extSettings.Extension = "Report Server Email"
Try
rs.CreateSubscription(report, extSettings, desc, eventType, matchData, parameters)
Catch e As SoapException
Console.WriteLine(e.Detail.InnerXml.ToString())
End Try
End Sub 'Main
End Class 'Sample
using System;
using System.Web.Services.Protocols;
class Sample
{
public static void Main()
{
ReportingService2005 rs = new ReportingService2005();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
string report = "/SampleReports/Employee Sales Summary";
string desc = "Send email to anyone@microsoft.com";
string eventType = "TimedSubscription";
string scheduleXml = @"<ScheduleDefinition><StartDateTime>2003-02-24T09:00:00-08:00</StartDateTime><WeeklyRecurrence><WeeksInterval>1</WeeksInterval><DaysOfWeek><Monday>True</Monday></DaysOfWeek></WeeklyRecurrence></ScheduleDefinition>";
ParameterValue[] extensionParams = new ParameterValue[8];
extensionParams[0] = new ParameterValue();
extensionParams[0].Name = "TO";
extensionParams[0].Value = "dank@adventure-works.com";
extensionParams[1] = new ParameterValue();
extensionParams[1].Name = "ReplyTo";
extensionParams[1].Value = "reporting@adventure-works.com";
extensionParams[2] = new ParameterValue();
extensionParams[2].Name = "IncludeReport";
extensionParams[2].Value = "True";
extensionParams[3] = new ParameterValue();
extensionParams[3].Name = "RenderFormat";
extensionParams[3].Value = "MHTML";
extensionParams[4] = new ParameterValue();
extensionParams[4].Name = "Subject";
extensionParams[4].Value = "@ReportName was executed at @ExecutionTime";
extensionParams[5] = new ParameterValue();
extensionParams[5].Name = "Comment";
extensionParams[5].Value = "Here is your daily sales report for Michael.";
extensionParams[6] = new ParameterValue();
extensionParams[6].Name = "IncludeLink";
extensionParams[6].Value = "True";
extensionParams[7] = new ParameterValue();
extensionParams[7].Name = "Priority";
extensionParams[7].Value = "NORMAL";
ParameterValue parameter = new ParameterValue();
parameter.Name = "EmpID";
parameter.Value = "38";
ParameterValue[] parameters = new ParameterValue[1];
parameters[0] = parameter;
string matchData = scheduleXml;
ExtensionSettings extSettings = new ExtensionSettings();
extSettings.ParameterValues = extensionParams;
extSettings.Extension = "Report Server Email";
try
{
rs.CreateSubscription(report, extSettings, desc, eventType, matchData, parameters);
}
catch (SoapException e)
{
Console.WriteLine(e.Detail.InnerXml.ToString());
}
}
}
注釈
次の表に、この操作に関連するヘッダーおよび権限の情報を示します。
SOAP ヘッダー | (In) BatchHeaderValue (Out) ServerInfoHeaderValue |
必要なアクセス許可 | ExecuteAndView および (CreateAnySubscription または CreateSubscription) |
GetExtensionSettings メソッドを使用すると、配信拡張機能に必須の設定の一覧を取得できます。 これらの必須の設定の値は、ExtensionSettings
パラメーターで渡す必要があります。 電子メール配信の設定については、「Reporting Services配信拡張機能の設定」を参照してください。
EventType
パラメーターの値は、レポート サーバー用に構成されたイベントに対応する必要があります。 サブスクリプションの作成に使用される 2 つのイベントは 、TimedSubscription と SnapshotUpdated です。 レポート サーバー用に構成されたすべてのイベントの一覧を返すには、ListEvents メソッドを使用します。
MatchData
パラメーターの値は、イベントの種類によって異なります。 イベントが TimedSubscription イベントの場合は、 ScheduleDefinition パラメーターとして MatchData
オブジェクトが必要です。 ScheduleDefinition オブジェクトを文字列値として渡し、スケジュールに基づくサブスクリプションを作成するには、まずこのオブジェクトを XML としてシリアル化する必要があります。 XML 構造は、次の例のようになります。
<ScheduleDefinition>
<WeeklyRecurrence>
<StartDateTime>2004-06-24T09:00:00-08:00</StartDateTime>
<WeeksInterval>1</WeeksInterval>
<DaysOfWeek>
<Monday>True</Monday>
</DaysOfWeek>
</WeeklyRecurrence>
</ScheduleDefinition>
StartDateTime 要素を XML 文字列として渡すときの値は、ISO 8601 の日付形式に対応する必要があります。 この国際日時標準は拡張形式 CCYY-MM-DDThh:mm:ss+/-Z となっており、"CCYY" が年、"MM" が月、"DD" が日を表します。 文字 "T" は日付と時刻の区切り記号を表し、"hh"、"mm"、"ss" はそれぞれ時、分、秒を表します。 協定世界時 (UTC) を表す場合には、すぐ後ろに "Z" を付けます。 ローカル時刻と協定世界時の差でタイム ゾーンを示すには、"Z" の前に "+"記号か "-" 記号を付け、"Z" の後ろに UTC との差を hh:mm の形式で表します。
TimedSubscription のスケジュール定義が共有スケジュールの場合は、共有スケジュールのスケジュール ID を パラメーターとしてMatchData
渡す必要があります。 スケジュール ID は、"4608ac1b-fc75-4149-9e15-5a8b5781b843" のように、String
として渡されます。 スケジュール ID は、ListSchedules メソッドを呼び出すことにより取得されます。
XmlSerializer クラスを使用すると、オブジェクト クラスを XML 文字列に自動的に変換できます。 XmlSerializer クラスの詳細については、「System.Xml」を参照してください。Microsoft .NET Framework ドキュメントの XmlSerializer クラス」を参照してください。
イベントが SnapshotUpdated サブスクリプションの場合、 の MatchData
値は null
(または Nothing
Visual Basic の場合) である必要があります。
このメソッドを使用すると、 LastExecutedSpecified サブスクリプションの プロパティを に false
設定し、 Status サブスクリプションの プロパティを に new subscription
設定し、サブスクリプションの Active オブジェクトのすべてのプロパティを に false
設定します。 また、レポートの ModifiedBy プロパティと ModifiedDate プロパティも更新されます。