다음을 통해 공유


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 AND (CreateAnySubscription OR CreateSubscription)
SharePoint 모드 필수 권한 <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는 "4608ac1b-fc75-4149-9e15-5a8b5781b843"으로 String전달됩니다. 메서드를 호출하여 일정 ID를 ListSchedules 가져올 수 있습니다.

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

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

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

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

적용 대상