Idioma

ReportingService2005.CreateSubscription Método

Definição

Cria uma assinatura para um relatório especificado no banco de dados do servidor de relatórios.

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

Parâmetros

Report
String

O nome completo do caminho do relatório para o qual criar uma assinatura.

ExtensionSettings
ExtensionSettings

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

Description
String

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

EventType
String

O tipo de evento que aciona 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 combinar a assinatura com um evento que foi disparado.

Parameters
ParameterValue[]

Um array de ParameterValue objetos que contém uma lista de parâmetros para o relatório.

Retornos

Um ID de assinatura, que identifica de forma única a assinatura no banco de dados do servidor de relatórios.

Exemplos

Para compilar esse exemplo de código, você deve consultar o Reporting Services WSDL e importar certos namespaces. Para mais informações, veja Exemplos de Código Compilando e Executando. O exemplo de código a seguir é usado CreateSubscription para adicionar uma nova assinatura ao banco de dados do servidor de relatórios:

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());  
      }  
   }  
}  

Comentários

A tabela abaixo mostra informações sobre cabeçalhos e permissões sobre esta operação.

Cabeçalhos SOAP (Em) BatchHeaderValue

(Fora) ServerInfoHeaderValue
Permissões necessárias ExecuteAndView E (CreateAnySubscription OU CreateSubscription)

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 os valores para essas configurações exigidas no ExtensionSettings parâmetro. Para informações sobre as configurações de entrega de e-mail, consulte Configurações de Extensão de Entrega do Reporting Services.

O valor do EventType parâmetro deve corresponder a um evento configurado para o servidor de relatórios. 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órios.

O valor do MatchData parâmetro depende do tipo de evento. Se o evento for um evento TimedSubscription , um ScheduleDefinition objeto é necessário como MatchData parâmetro. Você deve primeiro serializar o ScheduleDefinition objeto como XML para passá-lo como um valor de string e criar uma assinatura baseada no cronograma. A estrutura XML pode se parecer com a 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 passado como uma string 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, onde "CC" representa o século, "YY" o ano, "MM" o mês e "DD" o 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 imediatamente seguida por um "Z" para indicar o Tempo Universal Coordenado (UTC). Para indicar o fuso horário, representado como a diferença entre o horário local e o Horário Universal Coordenado, "Z" é precedido por um sinal de "+" ou "-", seguido pela diferença em relação ao UTC representada como hh:mm.

Se a definição de cronograma para um TimedSubscription for um cronograma compartilhado, você deve passar o ID do cronograma compartilhado como MatchData parâmetro. O ID do cronograma é passado como um String, por exemplo, "4608ac1b-fc75-4149-9e15-5a8b5781b843". O ID do agendamento pode ser obtido chamando o ListSchedules método.

Você pode usar a classe XmlSerializer para converter sua classe objeto automaticamente em uma string XML. Para mais informações sobre a classe XmlSerializer, veja "System.Xml.XmlSerializer Class" na documentação do Microsoft .NET Framework.

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

Usando esse método estabelece a LastExecutedSpecified propriedade da assinatura em false, a Status propriedade da assinatura em new subscription, e todas as propriedades do objeto da assinatura Active em false. As ModifiedBy propriedades e ModifiedDate do relatório também foram atualizadas.

Aplica-se a