ReportingService2005.CreateSubscription 메서드

정의

보고서 서버 데이터베이스의 지정된 보고서에 대한 구독을 만듭니다.

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

구독을 만들 보고서의 전체 경로 이름입니다.

ExtensionSettings
ExtensionSettings

배달 확장 프로그램에 고유한 설정 목록을 포함하는 ExtensionSettings 개체입니다.

Description
String

사용자에게 표시되는 의미 있는 설명입니다.

EventType
String

구독을 트리거하는 이벤트의 유형입니다. 유효한 값은 TimedSubscription 또는 SnapshotUpdated입니다.

MatchData
String

지정된 EventType 매개 변수와 연결된 데이터입니다. 이 매개 변수는 발생한 이벤트의 구독과 일치하는 이벤트에서 사용합니다.

Parameters
ParameterValue[]

보고서에 대한 매개 변수 목록을 포함하는 ParameterValue 개체의 배열입니다.

반환

보고서 서버 데이터베이스에서 구독을 고유하게 식별하는 구독 ID입니다.

예제

이 코드 예제를 컴파일하려면 Reporting Services WSDL을 참조하고 특정 네임스페이스를 가져와야 합니다. 자세한 내용은 코드 예제 컴파일 및 실행을 참조하세요. 다음 코드 예제에서는 를 사용하여 CreateSubscription 보고서 서버 데이터베이스에 새 구독을 추가합니다.

Imports System  
Imports System.Web.Services.Protocols  

Class Sample  
   Public Shared Sub Main()  
      Dim rs As New ReportingService2005()  
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials  

      Dim report As String = "/SampleReports/Employee Sales Summary"  
      Dim desc As String = "Send email to anyone@microsoft.com"  
      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(7) As ParameterValue  

      extensionParams(0) = New ParameterValue()  
      extensionParams(0).Name = "TO"  
      extensionParams(0).Value = "dank@adventure-works.com"  

      extensionParams(1) = New ParameterValue()  
      extensionParams(1).Name = "ReplyTo"  
      extensionParams(1).Value = "reporting@adventure-works.com"  

      extensionParams(2) = New ParameterValue()  
      extensionParams(2).Name = "IncludeReport"  
      extensionParams(2).Value = "True"  

      extensionParams(3) = New ParameterValue()  
      extensionParams(3).Name = "RenderFormat"  
      extensionParams(3).Value = "MHTML"  

      extensionParams(4) = New ParameterValue()  
      extensionParams(4).Name = "Subject"  
      extensionParams(4).Value = "@ReportName was executed at @ExecutionTime"  

      extensionParams(5) = New ParameterValue()  
      extensionParams(5).Name = "Comment"  
      extensionParams(5).Value = "Here is your daily sales report for Michael."  

      extensionParams(6) = New ParameterValue()  
      extensionParams(6).Name = "IncludeLink"  
      extensionParams(6).Value = "True"  

      extensionParams(7) = New ParameterValue()  
      extensionParams(7).Name = "Priority"  
      extensionParams(7).Value = "NORMAL"  

      Dim parameter As New ParameterValue()  
      parameter.Name = "EmpID"  
      parameter.Value = "38"  

      Dim parameters(1) As ParameterValue  
      parameters(0) = parameter  

      Dim matchData As String = scheduleXml  
      Dim extSettings As New ExtensionSettings()  
      extSettings.ParameterValues = extensionParams  
      extSettings.Extension = "Report Server Email"  

      Try  
         rs.CreateSubscription(report, extSettings, desc, eventType, matchData, parameters)  

      Catch e As SoapException  
         Console.WriteLine(e.Detail.InnerXml.ToString())  
      End Try  
   End Sub 'Main  
End Class 'Sample  
using System;  
using System.Web.Services.Protocols;  

class Sample  
{  
   public static void Main()  
   {  
      ReportingService2005 rs = new ReportingService2005();  
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  

      string report = "/SampleReports/Employee Sales Summary";  
      string desc = "Send email to anyone@microsoft.com";  
      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[8];  

      extensionParams[0] = new ParameterValue();  
      extensionParams[0].Name = "TO";  
      extensionParams[0].Value = "dank@adventure-works.com";  

      extensionParams[1] = new ParameterValue();  
      extensionParams[1].Name = "ReplyTo";  
      extensionParams[1].Value = "reporting@adventure-works.com";  

      extensionParams[2] = new ParameterValue();  
      extensionParams[2].Name = "IncludeReport";  
      extensionParams[2].Value = "True";  

      extensionParams[3] = new ParameterValue();  
      extensionParams[3].Name = "RenderFormat";  
      extensionParams[3].Value = "MHTML";  

      extensionParams[4] = new ParameterValue();  
      extensionParams[4].Name = "Subject";  
      extensionParams[4].Value = "@ReportName was executed at @ExecutionTime";  

      extensionParams[5] = new ParameterValue();  
      extensionParams[5].Name = "Comment";  
      extensionParams[5].Value = "Here is your daily sales report for Michael.";  

      extensionParams[6] = new ParameterValue();  
      extensionParams[6].Name = "IncludeLink";  
      extensionParams[6].Value = "True";  

      extensionParams[7] = new ParameterValue();  
      extensionParams[7].Name = "Priority";  
      extensionParams[7].Value = "NORMAL";  

      ParameterValue parameter = new ParameterValue();  
      parameter.Name = "EmpID";  
      parameter.Value = "38";  

      ParameterValue[] parameters = new ParameterValue[1];  
      parameters[0] = parameter;  

      string matchData = scheduleXml;  
      ExtensionSettings extSettings = new ExtensionSettings();  
      extSettings.ParameterValues = extensionParams;  
      extSettings.Extension = "Report Server Email";  

      try  
      {  
         rs.CreateSubscription(report, extSettings, desc, eventType, matchData, parameters);  
      }  

      catch (SoapException e)  
      {  
         Console.WriteLine(e.Detail.InnerXml.ToString());  
      }  
   }  
}  

설명

다음 표에서는 이 작업에 대한 헤더 및 사용 권한 정보를 보여 줍니다.

SOAP 헤더 (In) BatchHeaderValue

(Out) ServerInfoHeaderValue
필요한 권한 ExecuteAndView AND (CreateAnySubscription OR CreateSubscription)

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

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

XmlSerializer 클래스를 사용하여 개체 클래스를 XML 문자열로 자동으로 변환할 수 있습니다. XmlSerializer 클래스에 대한 자세한 내용은 "System.Xml. Microsoft .NET Framework 설명서의 XmlSerializer 클래스"

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

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

적용 대상