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 헤더 (In) TrustedUserHeaderValue

(Out) ServerInfoHeaderValue
필요한 권한 <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> AND (<xref:Microsoft.SharePoint.SPBasePermissions.ManageAlerts> OR <xref:Microsoft.SharePoint.SPBasePermissions.CreateAlerts>)

메서드를 GetExtensionSettings 사용하여 배달 확장 프로그램에 필요한 설정 목록을 검색할 수 있습니다. 매개 변수에서 이러한 필수 설정에 ExtensionSettings 대한 값을 전달해야 합니다. 전자 메일 배달 설정에 대한 자세한 내용은 Reporting Services 배달 확장 프로그램 설정을 참조하세요.

매개 변수의 EventType 값은 보고서 서버에 대해 구성된 이벤트에 해당해야 합니다. 구독을 만드는 데 사용되는 두 이벤트는 및 SnapshotUpdated입니다TimedSubscription. 메서드를 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>  

XML 문자열로 전달될 때 요소의 StartDateTime 값은 날짜 형식 ISO 8601에 해당해야 합니다. 이 국제 날짜 및 시간 표준은 확장된 형식 CCYY-MM-DDThh:mm:ss+/-Z입니다. 여기서 "CC"는 세기, "YY" 연도, 월 "MM" 및 "DD"를 나타냅니다. 문자 "T"는 날짜 및 시간 구분 기호이며 "hh", "mm", "ss"는 각각 시간, 분 및 초를 나타냅니다. 이 표현 바로 뒤에 "Z"가 표시되어 UTC(협정 세계시)를 나타낼 수 있습니다. 현지 시간과 협정 세계시 사이의 차이로 표현되는 표준 시간대를 나타내기 위해 "Z"는 "+" 또는 "-" 기호 뒤에 hh:mm로 표시된 UTC와 차이가 잇습니다.

의 일정 정의 TimedSubscription 가 공유 일정인 경우 공유 일정의 일정 ID를 매개 변수로 MatchData 전달해야 합니다. 일정 ID는 로 전달됩니다( 예: String"4608ac1b-fc75-4149-9e15-5a8b5781b843"). 메서드를 호출하여 일정 ID를 ListSchedules 가져올 수 있습니다.

클래스를 System.Xml.Serialization.XmlSerializer 사용하여 개체 클래스를 XML 문자열로 자동으로 변환할 수 있습니다.

이벤트가 구독인 SnapshotUpdated 경우 값 MatchData 은 (또는 Nothing Visual Basic에서) 이어야 null 합니다.

이 메서드를 사용하면 구독의 속성을 로 설정하고, 구독의 속성을 로 설정하고, 구독 new subscription개체falseActive 모든 속성을 로 설정합니다LastExecutedSpecified.falseStatus ModifiedBy 보고서의 및 ModifiedDate 속성도 업데이트됩니다.

매개 변수에 지정된 모든 일정은 MatchData 동일한 사이트와 Report에 있어야 합니다.

적용 대상