Поделиться через


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, содержащий список параметров для отчета.

Возвращаемое значение

Идентификатор подписки, уникально идентифицирующий ее в базе данных сервера отчетов.

Примеры

Для компиляции этого примера кода необходимо ссылаться на 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 параметра должно соответствовать событию, настроенному для сервера отчетов. Для создания подписок используются два события : 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:ss+/-Z, где "CC" представляет столетие, "ГГ" год, "ММ" месяц и "ДД" день. Буква "T" является разделителем даты и времени, а "чч", "мм", "сс" представляют час, минуту и секунду соответственно. За этим представлением может следовать буква "Z", обозначающее время UTC. Чтобы указать часовой пояс, представленный как разница между местным временем и универсальным координированным временем, "Z" предшествует знак "+" или "-", за которым следует различие от UTC, представленное чч:мм.

Если определение расписания для TimedSubscription является общим расписанием, необходимо передать идентификатор общего расписания в MatchData качестве параметра. Идентификатор расписания передается в виде String, например 4608ac1b-fc75-4149-9e15-5a8b5781b843. Идентификатор расписания можно получить, вызвав ListSchedules метод .

Класс XmlSerializer можно использовать для автоматического преобразования класса объекта в xml-строку. Дополнительные сведения о классе XmlSerializer см. в разделе "System.Xml. Класс XmlSerializer" в документации microsoft платформа .NET Framework.

Если событие является подпиской SnapshotUpdated , значение MatchData должно быть null (или Nothing в Visual Basic).

При использовании этого метода свойству LastExecutedSpecified подписки присваивается falseзначение , свойству Status подписки — new subscriptionзначение , а всем свойствам объекта подписки Active — значение false. Также ModifiedBy обновляются свойства и ModifiedDate отчета.

Применяется к