ReportingService2010.CreateSubscription Метод

Определение

Создает подписку для указанного элемента в базе данных сервера отчетов или библиотеке 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

Данные, связанные с указанным EventType параметром. Этот параметр используется в событии, чтобы сопоставить подписку с вызванным событием.

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 AND (CreateAnySubscription OR CreateSubscription)
Необходимые разрешения в режиме Интеграции с SharePoint <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> AND (<xref:Microsoft.SharePoint.SPBasePermissions.ManageAlerts> OR <xref:Microsoft.SharePoint.SPBasePermissions.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:ss+/-Z, где "CC" обозначает век, "ГГ" год, "ММ" месяц и "ДД" день. Буква "T" является разделителем даты и времени, а "чч", "мм", "сс" представляют час, минуту и секунду соответственно. За этим представлением сразу последует буква "Z", обозначающее время в формате UTC. Чтобы указать часовой пояс, представленный как разница между местным временем и универсальным временем в режиме координирования, "Z" предшествует знак "+" или "-", за которым следует различие от UTC, представленное как чч:мм.

Если определение расписания для является общим расписанием 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.

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