Lenguaje

ReportingService2005.CreateSubscription Método

Definición

Crea una suscripción para un informe específico en la base de datos del servidor de informes.

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

El nombre completo de la ruta del informe para el que crear una suscripción.

ExtensionSettings
ExtensionSettings

Un ExtensionSettings objeto que contiene una lista de ajustes específicos de la extensión de entrega.

Description
String

Una descripción significativa que se muestra a los usuarios.

EventType
String

El tipo de evento que activa la suscripción. Los valores válidos son TimedSubscription o SnapshotUpdated.

MatchData
String

Los datos asociados al parámetro especificado EventType . Este parámetro es utilizado por un evento para emparejar la suscripción con un evento que se ha activado.

Parameters
ParameterValue[]

Un array de ParameterValue objetos que contiene una lista de parámetros para el informe.

Devoluciones

Un ID de suscripción, que identifica de forma única la suscripción en la base de datos del servidor de informes.

Ejemplos

Para compilar este ejemplo de código, debes consultar el WSDL de Reporting Services e importar ciertos espacios de nombres. Para más información, consulte Ejemplos de Compilación y Ejecución de Código. El siguiente ejemplo de código se utiliza CreateSubscription para añadir una nueva suscripción a la base de datos del servidor de informes:

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

Comentarios

La siguiente tabla muestra la información sobre cabeceras y permisos sobre esta operación.

Encabezados SOAP (En) BatchHeaderValue

(Fuera) ServerInfoHeaderValue
Permisos necesarios ExecuteAndView Y (CreateAnySubscription O CreateSubscription)

Puedes usar el GetExtensionSettings método para obtener una lista de ajustes necesarios para una extensión de entrega. Debes pasar los valores de estos ajustes requeridos en el ExtensionSettings parámetro. Para información sobre la configuración de entrega de correos electrónicos, consulte Configuración de Extensión de Entrega de Reporting Services.

El valor del EventType parámetro debe corresponder a un evento configurado para el servidor de informes. Los dos eventos que se utilizan para crear suscripciones son TimedSubscription y SnapshotUpdated. Utiliza el ListEvents método para devolver una lista de todos los eventos configurados para el servidor de informes.

El valor del MatchData parámetro depende del tipo de evento. Si el evento es un evento TimedSubscription , se requiere un ScheduleDefinition objeto como MatchData parámetro. Primero debes serializar el ScheduleDefinition objeto como XML para poder pasarlo como valor de cadena y crear una suscripción basada en el calendario. La estructura XML podría parecerse a la del siguiente ejemplo:

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

El valor del StartDateTime elemento cuando se pasa como cadena XML debe corresponder al formato de fecha ISO 8601. Este estándar internacional de fecha y hora es el formato extendido CCYY-MM-DDThh:mm:ss+/-Z, donde "CC" representa el siglo, "YY" el año, "MM" el mes y "DD" el día. La letra "T" es el separador de fecha y hora y "hh", "mm", "ss" representan la hora, el minuto y el segundo respectivamente. Esta representación puede ir seguida inmediatamente de una "Z" para indicar el Tiempo Universal Coordinado (UTC). Para indicar la zona horaria, representada como la diferencia entre la hora local y la Hora Universal Coordinada, "Z" va precedida de un signo "+" o "-", seguido de la diferencia respecto a UTC representada como hh:mm.

Si la definición de horario para una Suscripción Temporal es un horario compartido, debes pasar el ID de horario compartido como MatchData parámetro. El ID del horario se transmite como un String, por ejemplo, "4608ac1b-fc75-4149-9e15-5a8b5781b843". El ID del calendario se puede obtener llamando al ListSchedules método.

Puedes usar la clase XmlSerializer para convertir automáticamente tu clase objeto a una cadena XML. Para más información sobre la clase XmlSerializer, consulte "System.Xml.XmlSerializer Class" en la documentación de Microsoft .NET Framework.

Si el evento es una suscripción SnapshotUpdateed, el valor de MatchData debería ser null (o Nothing en Visual Basic).

Usando este método establece la LastExecutedSpecified propiedad de la suscripción a false, la Status propiedad de la suscripción a new subscription, y todas las propiedades del objeto de la Active suscripción a false. Las ModifiedBy propiedades y ModifiedDate del informe también se actualizan.

Se aplica a