ReportingService2005.CreateSubscription Método

Definição

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

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 de caminho completo do relatório para o qual criar uma assinatura.

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 relatório.

Retornos

Uma ID de assinatura que identifica exclusivamente a assinatura no banco de dados de servidor de relatório.

Exemplos

Para compilar esse exemplo de código, você deve referenciar o WSDL Reporting Services e importar determinados namespaces. Para obter mais informações, consulte Compilando e executando exemplos de código. O exemplo de código a seguir usa CreateSubscription para adicionar uma nova assinatura ao banco de dados do servidor de relatório:

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 a seguir mostra o cabeçalho e as informações de permissão sobre esta operação.

Cabeçalhos SOAP (In) BatchHeaderValue

(Out) ServerInfoHeaderValue
Permissões necessárias ExecuteAndView AND (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 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 evento TimedSubscription , 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 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 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 agenda 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 classe XmlSerializer para converter sua classe de objeto em uma cadeia de caracteres XML automaticamente. Para obter mais informações sobre a classe XmlSerializer, consulte "System.Xml. Classe XmlSerializer" na documentação do Microsoft .NET Framework.

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

O uso desse método define a LastExecutedSpecified propriedade da assinatura como false, a Status propriedade da assinatura como new subscriptione todas as propriedades do objeto da Active assinatura como false. As ModifiedBy propriedades e ModifiedDate do relatório também são atualizadas.

Aplica-se a