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

触发订阅的事件的类型。 有效值是 TimedSubscriptionSnapshotUpdated

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 (CreateAnySubscriptionCreateSubscription)

可以使用 GetExtensionSettings 方法检索传递扩展插件的必需设置列表。 必须在 参数中 ExtensionSettings 传递这些所需设置的值。 有关电子邮件传递设置的信息,请参阅Reporting Services传递扩展插件设置

参数的值 EventType 必须与为报表服务器配置的事件相对应。 用于创建订阅的两个事件是 TimedSubscriptionSnapshotUpdatedListEvents使用 方法可返回为报表服务器配置的所有事件的列表。

参数的值 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 作为 String传递,例如,“4608ac1b-fc75-4149-9e15-5a8b5781b843”。 可以通过调用 ListSchedules 方法获取计划 ID。

可以使用 XmlSerializer 类自动将对象类转换为 XML 字符串。 有关 XmlSerializer 类的详细信息,请参阅“System.Xml。Microsoft .NET Framework 文档中的 XmlSerializer 类”。

如果事件是 SnapshotUpdated 订阅,则 的值 MatchDatanull (或在 Nothing Visual Basic) 中。

使用此方法将 LastExecutedSpecified 订阅的 属性设置为 falseStatus 将订阅的 属性设置为 new subscription,并将订阅 Active 对象的所有属性设置为 false。 报表 ModifiedBy 的 和 ModifiedDate 属性也会更新。

适用于