ReportingService2005.CreateSubscription Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.