次の方法で共有


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

ファイル名と拡張子 (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 パラメーターの値は、レポート サーバー用に構成されたイベントに対応する必要があります。 サブスクリプションの作成に使用されるイベントは、TimedSubscriptionSnapshotUpdated の 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) である必要があります。

このメソッドを使用すると、サブスクリプションの プロパティが LastExecutedSpecifiedfalse設定され、サブスクリプションの プロパティが Statusnew subscription設定され、サブスクリプションの オブジェクトのすべてのプロパティ Activeが に false設定されます。 また、レポートの ModifiedBy プロパティと ModifiedDate プロパティも更新されます。

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

適用対象