ReportingService2010.CreateSubscription 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
보고서 서버 데이터베이스 또는 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
에 있어야 합니다.