ReportingService2005.CreateSubscription 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在報告伺服器資料庫中建立指定報告的訂閱。
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 標頭 | (在) BatchHeaderValue (出局) ServerInfoHeaderValue |
| 必要權限 | ExecuteAndView 且 (CreateAnySubscription 或 CreateSubscription) |
你可以用這個 GetExtensionSettings 方法取得交付擴充所需的設定清單。 你必須在參數 ExtensionSettings 中傳遞這些必要設定的值。 有關電子郵件投遞設定的資訊,請參閱 Reporting Services Delivery 擴充設定。
參數的 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>
當以 XML 字串傳遞時 StartDateTime ,元素的值應對應日期格式 ISO 8601。 此國際日期與時間標準為擴展格式 CCYY-MM-DDThh:mm:ss+/-Z,其中「CC」代表世紀,「YY」代表年份,「MM」代表月份,「DD」代表日。 字母「T」代表日期與時間分隔符,「hh」、「mm」、「ss」分別代表時、分鐘和秒。 此表示法後可緊接「Z」以表示協調世界時(UTC)。 為了表示時區,以當地時間與協調世界時的差值表示,「Z」前會加上「+」或「-」符號,接著是與UTC的差值,表示為hh:mm。
如果 TimedSubscription 的排程定義是共享排程,你必須將共享排程的排程 ID 作為 MatchData 參數傳遞。 Schedule ID 會以 String,例如「4608ac1b-fc75-4149-9e15-5a8b5781b843」傳遞。 可透過呼叫該 ListSchedules 方法取得排程 ID。
你可以使用 XmlSerializer 類別自動將物件類別轉換成 XML 字串。 欲了解更多關於 XmlSerializer 類別的資訊,請參閱 Microsoft .NET Framework 文件中的「System.Xml.XmlSerializer 類別」。
如果事件是 SnapshotUpdated 訂閱,值MatchData應該是null(或Nothing在 Visual Basic 中)。
使用此方法將認購的性質設為 false,認購LastExecutedSpecified的性質為 ,Status認購的性質new subscription為 ,認購的所有性質Activefalse為 。
ModifiedBy
ModifiedDate報告的性質也已更新。