ReportingService2010.CreateSubscription メソッド

定義

指定された項目に対してレポートサーバーデータベースまたは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

項目の完全限定URLと、ファイル名、SharePointモードでは拡張子を含みます。

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ヘッダーの使用 (イン) TrustedUserHeaderValue

(アウト) ServerInfoHeaderValue
ネイティブモードの必要権限 ExecuteAndView そして(CreateAnySubscription または CreateSubscription)
SharePointモードの必要権限 <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> そして(<xref:Microsoft.SharePoint.SPBasePermissions.ManageAlerts> または <xref:Microsoft.SharePoint.SPBasePermissions.CreateAlerts>)

GetExtensionSettingsメソッドを使って、配送延長に必要な設定のリストを取得できます。 これらの必要な設定の値を ExtensionSettings パラメータに渡す必要があります。 メール配信設定の詳細については、「Reporting Services Delivery Extension Settings」をご覧ください。

EventTypeパラメータの値は、レポートサーバーに設定されたイベントに対応しなければなりません。 サブスクリプション作成に使われるイベントは TimedSubscriptionSnapshotUpdatedの2つです。 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で、「CC」は世紀、「YY」は年、「MM」は月、「DD」は日を表します。 「T」は日付と時間の区切り符、「hh」「mm」「ss」はそれぞれ時、分、秒を表します。 この表現の直後に「Z」を付けて協調宇宙時(UTC)を示すことができます。 標準時を示すために、「Z」の前に「+」または「-」記号が付けられ、UTCとの差はhh:mmで表されます。

TimedSubscriptionのスケジュール定義が共有スケジュールの場合、共有スケジュールのスケジュールIDをMatchDataパラメータとして渡す必要があります。 スケジュールIDは Stringとして渡されます。例えば「4608ac1b-fc75-4149-9e15-5a8b5781b843」などです。 スケジュールIDは ListSchedules メソッドを呼び出して取得できます。

System.Xml.Serialization.XmlSerializerクラスを使ってオブジェクトクラスを自動的にXML文字列に変換できます。

イベントがSnapshotUpdatedサブスクリプションであれば、MatchDataの価値はnull(またはVisual BasicではNothing)されるべきです。

この方法を使用すると、サブスクリプションの LastExecutedSpecified プロパティを falseに、サブスクリプションの Status プロパティを new subscriptionに、サブスクリプションの Activeオブジェクトのすべてのプロパティを falseに設定します。 報告書の ModifiedBy および ModifiedDate 特性も更新されています。

MatchDataパラメータで指定されたスケジュールは、同じサイトおよびItemPath上にある必要があります。

適用対象