ReportingService2006.CreateSubscription メソッド

定義

指定されたレポートのサブスクリプションをレポートサーバーデータベースに作成します。

public:
 System::String ^ CreateSubscription(System::String ^ Report, ReportService2006::ExtensionSettings ^ ExtensionSettings, System::String ^ Description, System::String ^ EventType, System::String ^ MatchData, cli::array <ReportService2006::ParameterValue ^> ^ Parameters);
public string CreateSubscription(string Report, ReportService2006.ExtensionSettings ExtensionSettings, string Description, string EventType, string MatchData, ReportService2006.ParameterValue[] Parameters);
member this.CreateSubscription : string * ReportService2006.ExtensionSettings * string * string * string * ReportService2006.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

ファイル名と拡張子.rdlを含む、レポートの完全修飾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)  
    {  
        ReportingService2006 rs = new ReportingService2006();  
        rs.Url = "http://<Server Name>" +  
            "/_vti_bin/ReportServer/ReportService2006.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 ReportingService2006()  
        rs.Url = "http://<Server Name>" + _  
            "/_vti_bin/ReportServer/ReportService2006.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
必要なアクセス許可 <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イベントの場合、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>  

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パラメータで指定されたスケジュールは、同じサイトおよびReport上にある必要があります。

適用対象