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 отчета.