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
項目的完整 URL,包括檔案名稱以及 SharePoint 模式中的延伸模組。
- ExtensionSettings
- ExtensionSettings
ExtensionSettings 物件,其中包含傳遞延伸模組專用的設定清單。
- Description
- String
對使用者顯示的有意義描述。
- EventType
- String
觸發訂閱的事件類型。 有效值為 TimedSubscription 或 SnapshotUpdated。
- MatchData
- String
與指定之 事件 類型參數相關聯的資料。 這個參數是由事件用來比對訂閱與已引發的事件。
- Parameters
- ParameterValue[]
ParameterValue 物件的陣列,其中包含項目的參數清單。
傳回
可唯一識別報表伺服器資料庫或 SharePoint 文件庫中之訂閱的訂閱識別碼。
- 屬性
範例
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 以及 (CreateAnySubscription 或 CreateSubscription) |
| SharePoint 模式的必要許可權 | ViewListItems 以及 (ManageAlerts 或 CreateAlerts) |
您可以使用 GetExtensionSettings 方法來取得傳遞延伸模組所需的設定清單。 您必須在參數中傳遞這些必要設定的值 ExtensionSettings 。 如需電子郵件傳遞設定的詳細資訊,請參閱 Reporting Services 傳遞延伸模組設定。
參數的值 EventType 必須對應至針對報表伺服器所設定的事件。 用來建立訂閱的兩個事件為 TimedSubscription 和 SnapshotUpdated 。 您 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>
StartDateTime當元素作為 XML 字串傳遞時,該專案的值應該對應至日期格式 ISO 8601。 此國際日期和時間標準是延伸格式 CCYY-MM-DDTHH-MM-DDThh: MM: ss +/-Z,其中 "CC" 代表紀元 "YY" 年 "MM" 月份和 "DD" 天。 字母 "T" 是日期和時間分隔符號,而 "hh"、"mm"、"ss" 分別代表小時、分鐘和秒。 此標記法後面可以緊接著 "Z",以指出國際標準時間 (UTC) 。 若要指出時區(以本地時間和國際標準時間之間的差異表示),"Z" 的前面會加上 "+" 或 "-" 符號,後面接著以 hh: mm 表示的 UTC 時差。
如果 a 的排程定義 TimedSubscription 是共用排程,您必須傳遞共用排程的排程識別碼作為 MatchData 參數。 排程識別碼會傳遞為 String ,例如 "4608ac1b-fc75-4149-9e15-5a8b5781b843"。 您可以藉由呼叫方法來取得排程識別碼 ListSchedules 。
您可以使用 System.Xml.Serialization.XmlSerializer 類別,自動將物件類別轉換成 XML 字串。
如果事件是訂用帳戶 SnapshotUpdated ,的值 MatchData 應該是 null (或 Nothing Visual Basic) 。
使用這個方法時,它會將訂閱的屬性設定為、將訂閱的屬性設定為 LastExecutedSpecified false Status new subscription ,並將訂閱物件的所有屬性設 Active 為 false 。 ModifiedBy報表的和 ModifiedDate 屬性也會更新。
參數中指定的任何排程都 MatchData 必須位於相同的網站和 ItemPath 。