ReportingService2005.CreateSubscription Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea una suscripción para un informe especificado 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
Nombre completo de la ruta de acceso del informe para el que crear una suscripción.
- ExtensionSettings
- ExtensionSettings
Objeto ExtensionSettings que contiene una lista de opciones de configuración que es específica de la extensión de entrega.
- Description
- String
Descripción significativa que se muestra a los usuarios.
- EventType
- String
Tipo de evento que desencadena la suscripción. Los valores válidos son TimedSubscription
o SnapshotUpdated
.
- MatchData
- String
Datos asociados al parámetro especificado EventType
. Un evento utiliza este parámetro para hacer coincidir la suscripción con un evento que ha desencadenado.
- Parameters
- ParameterValue[]
Matriz de objetos ParameterValue que contiene una lista de parámetros para el informe.
Devoluciones
Identificador de la 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, debe hacer referencia al Reporting Services WSDL e importar determinados espacios de nombres. Para obtener más información, vea Compilar y ejecutar ejemplos de código. En el ejemplo de código siguiente se usa CreateSubscription para agregar 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
En la siguiente tabla se muestra la información de encabezado y de permisos de esta operación.
Encabezados SOAP | (In) BatchHeaderValue (Out) ServerInfoHeaderValue |
Permisos necesarios | ExecuteAndView AND (CreateAnySubscription OR CreateSubscription) |
Puede usar el GetExtensionSettings método para recuperar una lista de la configuración necesaria para una extensión de entrega. Debe pasar valores para estos valores necesarios en el ExtensionSettings
parámetro . Para obtener información sobre la configuración de entrega de correo electrónico, consulte Reporting Services Configuración de la extensión de entrega.
El valor del EventType
parámetro debe corresponder a un evento configurado para el servidor de informes. Los dos eventos que se usan para crear suscripciones son TimedSubscription y SnapshotUpdated. Use 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 debe serializar el ScheduleDefinition objeto como XML para pasarlo como un valor de cadena y crear una suscripción basada en la programación. La estructura XML podría tener un aspecto similar al del ejemplo siguiente:
<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 una 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, "AAA" 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 hora, minuto y segundo respectivamente. Esta representación puede ir seguida inmediatamente de una "Z" para indicar la hora universal coordinada (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 de UTC representada como hh:mm.
Si la definición de programación de una timedSubscription es una programación compartida, debe pasar el identificador de programación de la programación compartida como MatchData
parámetro. El identificador de programación se pasa como String
, por ejemplo, "4608ac1b-fc75-4149-9e15-5a8b5781b843". El identificador de programación se puede obtener llamando al ListSchedules método .
Puede usar la clase XmlSerializer para convertir la clase de objeto en una cadena XML automáticamente. Para obtener más información sobre la clase XmlSerializer , vea "System.Xml. Clase XmlSerializer" en la documentación de Microsoft .NET Framework.
Si el evento es una suscripción snapshotUpdated , el valor de MatchData
debe ser null
(o Nothing
en Visual Basic).
El uso de este método establece la LastExecutedSpecified propiedad de la suscripción en false
, la Status propiedad de la suscripción en new subscription
y todas las propiedades del objeto de Active la suscripción en false
. Las ModifiedBy propiedades y ModifiedDate del informe también se actualizan.