ReportingService2010.CreateSubscription メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したアイテムのサブスクリプションをレポート サーバー データベースまたは SharePoint ライブラリに作成します。 このメソッドは、アイテムの種類 Report
に適用されます。
public:
System::String ^ CreateSubscription(System::String ^ ItemPath, ReportService2010::ExtensionSettings ^ ExtensionSettings, System::String ^ Description, System::String ^ EventType, System::String ^ MatchData, cli::array <ReportService2010::ParameterValue ^> ^ Parameters);
[System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateSubscription", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, RequestNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", ResponseNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", Use=System.Web.Services.Description.SoapBindingUse.Literal)]
[System.Web.Services.Protocols.SoapHeader("ServerInfoHeaderValue", Direction=System.Web.Services.Protocols.SoapHeaderDirection.Out)]
[System.Web.Services.Protocols.SoapHeader("TrustedUserHeaderValue")]
public string CreateSubscription (string ItemPath, ReportService2010.ExtensionSettings ExtensionSettings, string Description, string EventType, string MatchData, ReportService2010.ParameterValue[] Parameters);
[<System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateSubscription", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, RequestNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", ResponseNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", Use=System.Web.Services.Description.SoapBindingUse.Literal)>]
[<System.Web.Services.Protocols.SoapHeader("ServerInfoHeaderValue", Direction=System.Web.Services.Protocols.SoapHeaderDirection.Out)>]
[<System.Web.Services.Protocols.SoapHeader("TrustedUserHeaderValue")>]
member this.CreateSubscription : string * ReportService2010.ExtensionSettings * string * string * string * ReportService2010.ParameterValue[] -> string
Public Function CreateSubscription (ItemPath As String, ExtensionSettings As ExtensionSettings, Description As String, EventType As String, MatchData As String, Parameters As ParameterValue()) As String
パラメーター
- ItemPath
- String
ファイル名と拡張子 (SharePoint モードの場合) を含む、アイテムの完全修飾 URL です。
- ExtensionSettings
- ExtensionSettings
配信拡張機能固有の設定の一覧を格納した ExtensionSettings オブジェクトです。
- Description
- String
ユーザーに対して表示される説明文です。
- EventType
- String
サブスクリプションを開始するイベントの種類です。 有効な値は TimedSubscription
または SnapshotUpdated
です。
- MatchData
- String
指定した EventType
パラメーターに関連付けられているデータ。 このパラメーターは、サブスクリプションと発生したイベントの照合のために、イベントで使用されます。
- Parameters
- ParameterValue[]
項目のパラメーターの ParameterValue 一覧を含む オブジェクトの配列。
戻り値
レポート サーバー データベースまたは SharePoint ライブラリのサブスクリプションを一意に識別するサブスクリプション ID です。
- 属性
例
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
class Sample
{
static void Main(string[] args)
{
ReportingService2010 rs = new ReportingService2010();
rs.Url = "http://<Server Name>" +
"/_vti_bin/ReportServer/ReportService2010.asmx";
rs.Credentials =
System.Net.CredentialCache.DefaultCredentials;
string report = "http://<Server Name>" +
"/Docs/Documents/AdventureWorks Sample Reports" +
"/Sales Order Detail.rdl";
string desc = "Send to Document Library";
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[6];
extensionParams[0] = new ParameterValue();
extensionParams[0].Name = "RENDER_FORMAT";
extensionParams[0].Value = "EXCEL";
extensionParams[1] = new ParameterValue();
extensionParams[1].Name = "FILENAME";
extensionParams[1].Value = "Sales Order Detail";
extensionParams[2] = new ParameterValue();
extensionParams[2].Name = "FILEEXTN";
extensionParams[2].Value = "True";
extensionParams[3] = new ParameterValue();
extensionParams[3].Name = "PATH";
extensionParams[3].Value = "http://<Server Name>" +
"/Docs/Documents/AdventureWorks Sample Reports/";
extensionParams[4] = new ParameterValue();
extensionParams[4].Name = "WRITEMODE";
extensionParams[4].Value = "Overwrite";
extensionParams[5] = new ParameterValue();
extensionParams[5].Name = "AUTOCOPY";
extensionParams[5].Value = "False";
string matchData = scheduleXml;
ExtensionSettings extSettings = new ExtensionSettings();
extSettings.ParameterValues = extensionParams;
extSettings.Extension = "Report Server DocumentLibrary";
try
{
rs.CreateSubscription(report, extSettings, desc,
eventType, matchData, null);
}
catch (SoapException e)
{
Console.WriteLine(e.Detail.InnerXml.ToString());
}
}
}
Imports System
Imports System.IO
Imports System.Text
Imports System.Web.Services
Imports System.Web.Services.Protocols
Class Sample
Public Shared Sub Main()
Dim rs As New ReportingService2010()
rs.Url = "http://<Server Name>" + _
"/_vti_bin/ReportServer/ReportService2010.asmx"
rs.Credentials = _
System.Net.CredentialCache.DefaultCredentials
Dim report As String = "http://<Server Name>/Docs/" + _
"Documents/AdventureWorks Sample Reports/" + _
"Sales Order Detail.rdl"
Dim desc As String = "Send to Document Library"
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(6) As ParameterValue
extensionParams(0) = New ParameterValue()
extensionParams(0).Name = "RENDER_FORMAT"
extensionParams(0).Value = "EXCEL"
extensionParams(1) = New ParameterValue()
extensionParams(1).Name = "FILENAME"
extensionParams(1).Value = "Sales Order Detail"
extensionParams(2) = New ParameterValue()
extensionParams(2).Name = "FILEEXTN"
extensionParams(2).Value = "True"
extensionParams(3) = New ParameterValue()
extensionParams(3).Name = "PATH"
extensionParams(3).Value = "http://<Server Name>" + _
"/Docs/Documents/AdventureWorks Sample Reports/"
extensionParams(4) = New ParameterValue()
extensionParams(4).Name = "WRITEMODE"
extensionParams(4).Value = "Overwrite"
extensionParams(5) = New ParameterValue()
extensionParams(5).Name = "AUTOCOPY"
extensionParams(5).Value = "False"
Dim matchData As String = scheduleXml
Dim extSettings As New ExtensionSettings()
extSettings.ParameterValues = extensionParams
extSettings.Extension = "Report Server DocumentLibrary"
Try
rs.CreateSubscription(report, extSettings, desc, _
eventType, matchData, Nothing)
Catch e As SoapException
Console.WriteLine(e.Detail.InnerXml.ToString())
End Try
End Sub
End Class
注釈
次の表に、この操作に関連するヘッダーおよび権限の情報を示します。
SOAP ヘッダーの使用方法 | (In) TrustedUserHeaderValue (Out) ServerInfoHeaderValue |
ネイティブ モードで必要なアクセス許可 | ExecuteAndView および (CreateAnySubscription または CreateSubscription) |
SharePoint モードに必要なアクセス許可 | <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> および (<xref:Microsoft.SharePoint.SPBasePermissions.ManageAlerts> または <xref:Microsoft.SharePoint.SPBasePermissions.CreateAlerts>) |
GetExtensionSettings メソッドを使用すると、配信拡張機能に必須の設定の一覧を取得できます。 これらの必須の設定の値は、ExtensionSettings
パラメーターで渡す必要があります。 電子メール配信の設定については、「Reporting Services配信拡張機能の設定」を参照してください。
EventType
パラメーターの値は、レポート サーバー用に構成されたイベントに対応する必要があります。 サブスクリプションの作成に使用されるイベントは、TimedSubscription
と SnapshotUpdated
の 2 つです。 レポート サーバー用に構成されたすべてのイベントの一覧を返すには、ListEvents メソッドを使用します。
MatchData
パラメーターの値は、イベントの種類によって異なります。 イベントが TimedSubscription
イベントである場合は、MatchData
パラメーターとして ScheduleDefinition オブジェクトが必要です。 ScheduleDefinition オブジェクトを文字列値として渡し、スケジュールに基づくサブスクリプションを作成するには、まずこのオブジェクトを XML としてシリアル化する必要があります。 XML 構造体は、次の例のようになります。
<ScheduleDefinition>
<WeeklyRecurrence>
<StartDateTime>2004-06-24T09:00:00-08:00</StartDateTime>
<WeeksInterval>1</WeeksInterval>
<DaysOfWeek>
<Monday>True</Monday>
</DaysOfWeek>
</WeeklyRecurrence>
</ScheduleDefinition>
XML 文字列として渡される要素の StartDateTime 値は、日付形式 ISO 8601 に対応している必要があります。 この国際日時標準は拡張形式 CCYY-MM-DDThh:mm:ss+/-Z となっており、"CCYY" が年、"MM" が月、"DD" が日を表します。 文字 "T" は日付と時刻の区切り記号を表し、"hh"、"mm"、"ss" はそれぞれ時、分、秒を表します。 この表現の直後に "Z" を付けて、世界協定時刻 (UTC) を示すことができます。 ローカル時刻と協定世界時の差でタイム ゾーンを示すには、"Z" の前に "+"記号か "-" 記号を付け、"Z" の後ろに UTC との差を hh:mm の形式で表します。
TimedSubscription
のスケジュール定義が共有スケジュールである場合、共有スケジュールの ID を MatchData
パラメーターとして渡す必要があります。 スケジュール ID は、"4608ac1b-fc75-4149-9e15-5a8b5781b843" のように、String
として渡されます。 スケジュール ID は、ListSchedules メソッドを呼び出すことにより取得されます。
System.Xml.Serialization.XmlSerializer クラスを使用して、オブジェクト クラスを XML 文字列に自動的に変換できます。
イベントが SnapshotUpdated
サブスクリプションである場合、MatchData
の値は null
(Visual Basic では Nothing
) である必要があります。
このメソッドを使用すると、サブスクリプションの プロパティが LastExecutedSpecified に false
設定され、サブスクリプションの プロパティが Status に new subscription
設定され、サブスクリプションの オブジェクトのすべてのプロパティ Activeが に false
設定されます。 また、レポートの ModifiedBy プロパティと ModifiedDate プロパティも更新されます。
MatchData
パラメーターに指定されたすべてのスケジュールは、同じサイトおよび ItemPath
に含まれている必要があります。