ReportingService2010.CreateSubscription Método

Definição

Cria uma assinatura para o item especificado no banco de dados de servidor de relatório ou biblioteca do SharePoint. Esse método se aplica ao tipo de item 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

Parâmetros

ItemPath
String

A URL totalmente qualificada do item, incluindo o nome do arquivo e a extensão no modo do SharePoint.

ExtensionSettings
ExtensionSettings

Um objeto ExtensionSettings que contém uma lista de configurações específicas à extensão de entrega.

Description
String

Uma descrição significativa exibida aos usuários.

EventType
String

O tipo de evento que dispara a assinatura. Os valores válidos são TimedSubscription ou SnapshotUpdated.

MatchData
String

Os dados associados ao parâmetro especificado EventType . Esse parâmetro é usado por um evento para corresponder a assinatura com um evento acionado.

Parameters
ParameterValue[]

Uma matriz de objetos ParameterValue que contém uma lista de parâmetros para o item.

Retornos

Uma ID de assinatura que identifica exclusivamente a assinatura no banco de dados de servidor de relatório ou na biblioteca do SharePoint.

Atributos

Exemplos

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  

Comentários

A tabela a seguir mostra o cabeçalho e as informações de permissão sobre esta operação.

Uso do cabeçalho SOAP (In) TrustedUserHeaderValue

(Out) ServerInfoHeaderValue
Permissões necessárias do modo nativo ExecuteAndView AND (CreateAnySubscription OU CreateSubscription)
Permissões necessárias do modo do SharePoint <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> AND (<xref:Microsoft.SharePoint.SPBasePermissions.ManageAlerts> OU <xref:Microsoft.SharePoint.SPBasePermissions.CreateAlerts>)

Você pode usar o GetExtensionSettings método para recuperar uma lista de configurações necessárias para uma extensão de entrega. Você deve passar valores para essas configurações necessárias no ExtensionSettings parâmetro . Para obter informações sobre as configurações de entrega de email, consulte Reporting Services Configurações de Extensão de Entrega.

O valor do EventType parâmetro deve corresponder a um evento configurado para o servidor de relatório. Os dois eventos usados para criar assinaturas são TimedSubscription e SnapshotUpdated. Use o ListEvents método para retornar uma lista de todos os eventos configurados para o servidor de relatório.

O valor do MatchData parâmetro depende do tipo de evento. Se o evento for um TimedSubscription evento, um ScheduleDefinition objeto será necessário como o MatchData parâmetro . Primeiro, você deve serializar o ScheduleDefinition objeto como XML para passá-lo como um valor de cadeia de caracteres e criar uma assinatura com base no agendamento. A estrutura XML pode ser semelhante à do exemplo a seguir:

<ScheduleDefinition>  
   <WeeklyRecurrence>  
      <StartDateTime>2004-06-24T09:00:00-08:00</StartDateTime>  
      <WeeksInterval>1</WeeksInterval>  
      <DaysOfWeek>  
         <Monday>True</Monday>  
         </DaysOfWeek>  
   </WeeklyRecurrence>  
</ScheduleDefinition>  

O valor do StartDateTime elemento quando ele é passado como uma cadeia de caracteres XML deve corresponder ao formato de data ISO 8601. Esse padrão internacional de data e hora é o formato estendido CCYY-MM-DDThh:mm:ss+/-Z em que "CC" representa o século, "YY" o ano, "MM" o mês e "DD" do dia. A letra "T" é o separador de data e hora e "hh", "mm", "ss" representam hora, minuto e segundo, respectivamente. Essa representação pode ser seguida imediatamente por um "Z" para indicar UTC (Tempo Universal Coordenado). Para indicar o fuso horário, representado como a diferença entre a hora local e o Tempo Universal Coordenado, "Z" é precedido por um sinal "+" ou "-", seguido pela diferença de UTC representada como hh:mm.

Se a definição de agendamento de um TimedSubscription for uma agenda compartilhada, você deverá passar a ID de agendamento do agendamento compartilhado como o MatchData parâmetro . A ID do agendamento é passada como um String, por exemplo, "4608ac1b-fc75-4149-9e15-5a8b5781b843". A ID de agendamento pode ser obtida chamando o ListSchedules método .

Você pode usar a System.Xml.Serialization.XmlSerializer classe para converter sua classe de objeto em uma cadeia de caracteres XML automaticamente.

Se o evento for uma SnapshotUpdated assinatura, o valor de MatchData deverá ser null (ou Nothing no Visual Basic).

Quando esse método for usado, ele definirá a LastExecutedSpecified propriedade da assinatura como false, a Status propriedade da assinatura como new subscriptione todas as propriedades do objeto da Activeassinatura como false. As ModifiedBy propriedades e ModifiedDate do relatório também são atualizadas.

Qualquer agenda especificada no MatchData parâmetro deve estar no mesmo site e no ItemPath.

Aplica-se a