ReportingService2010.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 o item especificado no banco de dados do servidor de relatórios ou na biblioteca do SharePoint. Esse método se aplica ao tipo de Report item.
public:
System::String ^ CreateSubscription(System::String ^ ItemPath, ReportService2010::ExtensionSettings ^ ExtensionSettings, System::String ^ Description, System::String ^ EventType, System::String ^ MatchData, cli::array <ReportService2010::ParameterValue ^> ^ Parameters);
[System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateSubscription", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, RequestNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", ResponseNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", Use=System.Web.Services.Description.SoapBindingUse.Literal)]
[System.Web.Services.Protocols.SoapHeader("ServerInfoHeaderValue", Direction=System.Web.Services.Protocols.SoapHeaderDirection.Out)]
[System.Web.Services.Protocols.SoapHeader("TrustedUserHeaderValue")]
public string CreateSubscription(string ItemPath, ReportService2010.ExtensionSettings ExtensionSettings, string Description, string EventType, string MatchData, ReportService2010.ParameterValue[] Parameters);
[<System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateSubscription", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, RequestNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", ResponseNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", Use=System.Web.Services.Description.SoapBindingUse.Literal)>]
[<System.Web.Services.Protocols.SoapHeader("ServerInfoHeaderValue", Direction=System.Web.Services.Protocols.SoapHeaderDirection.Out)>]
[<System.Web.Services.Protocols.SoapHeader("TrustedUserHeaderValue")>]
member this.CreateSubscription : string * ReportService2010.ExtensionSettings * string * string * string * ReportService2010.ParameterValue[] -> string
Public Function CreateSubscription (ItemPath As String, ExtensionSettings As ExtensionSettings, Description As String, EventType As String, MatchData As String, Parameters As ParameterValue()) As String
Parâmetros
- ItemPath
- String
A URL totalmente qualificada do item, incluindo o nome do arquivo e, no modo SharePoint, a extensão.
- 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 item.
Retornos
Um ID de assinatura que identifica de forma única a assinatura no banco de dados do servidor de relatórios ou na biblioteca do SharePoint.
- Atributos
Exemplos
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
class Sample
{
static void Main(string[] args)
{
ReportingService2010 rs = new ReportingService2010();
rs.Url = "http://<Server Name>" +
"/_vti_bin/ReportServer/ReportService2010.asmx";
rs.Credentials =
System.Net.CredentialCache.DefaultCredentials;
string report = "http://<Server Name>" +
"/Docs/Documents/AdventureWorks Sample Reports" +
"/Sales Order Detail.rdl";
string desc = "Send to Document Library";
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[6];
extensionParams[0] = new ParameterValue();
extensionParams[0].Name = "RENDER_FORMAT";
extensionParams[0].Value = "EXCEL";
extensionParams[1] = new ParameterValue();
extensionParams[1].Name = "FILENAME";
extensionParams[1].Value = "Sales Order Detail";
extensionParams[2] = new ParameterValue();
extensionParams[2].Name = "FILEEXTN";
extensionParams[2].Value = "True";
extensionParams[3] = new ParameterValue();
extensionParams[3].Name = "PATH";
extensionParams[3].Value = "http://<Server Name>" +
"/Docs/Documents/AdventureWorks Sample Reports/";
extensionParams[4] = new ParameterValue();
extensionParams[4].Name = "WRITEMODE";
extensionParams[4].Value = "Overwrite";
extensionParams[5] = new ParameterValue();
extensionParams[5].Name = "AUTOCOPY";
extensionParams[5].Value = "False";
string matchData = scheduleXml;
ExtensionSettings extSettings = new ExtensionSettings();
extSettings.ParameterValues = extensionParams;
extSettings.Extension = "Report Server DocumentLibrary";
try
{
rs.CreateSubscription(report, extSettings, desc,
eventType, matchData, null);
}
catch (SoapException e)
{
Console.WriteLine(e.Detail.InnerXml.ToString());
}
}
}
Imports System
Imports System.IO
Imports System.Text
Imports System.Web.Services
Imports System.Web.Services.Protocols
Class Sample
Public Shared Sub Main()
Dim rs As New ReportingService2010()
rs.Url = "http://<Server Name>" + _
"/_vti_bin/ReportServer/ReportService2010.asmx"
rs.Credentials = _
System.Net.CredentialCache.DefaultCredentials
Dim report As String = "http://<Server Name>/Docs/" + _
"Documents/AdventureWorks Sample Reports/" + _
"Sales Order Detail.rdl"
Dim desc As String = "Send to Document Library"
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(6) As ParameterValue
extensionParams(0) = New ParameterValue()
extensionParams(0).Name = "RENDER_FORMAT"
extensionParams(0).Value = "EXCEL"
extensionParams(1) = New ParameterValue()
extensionParams(1).Name = "FILENAME"
extensionParams(1).Value = "Sales Order Detail"
extensionParams(2) = New ParameterValue()
extensionParams(2).Name = "FILEEXTN"
extensionParams(2).Value = "True"
extensionParams(3) = New ParameterValue()
extensionParams(3).Name = "PATH"
extensionParams(3).Value = "http://<Server Name>" + _
"/Docs/Documents/AdventureWorks Sample Reports/"
extensionParams(4) = New ParameterValue()
extensionParams(4).Name = "WRITEMODE"
extensionParams(4).Value = "Overwrite"
extensionParams(5) = New ParameterValue()
extensionParams(5).Name = "AUTOCOPY"
extensionParams(5).Value = "False"
Dim matchData As String = scheduleXml
Dim extSettings As New ExtensionSettings()
extSettings.ParameterValues = extensionParams
extSettings.Extension = "Report Server DocumentLibrary"
Try
rs.CreateSubscription(report, extSettings, desc, _
eventType, matchData, Nothing)
Catch e As SoapException
Console.WriteLine(e.Detail.InnerXml.ToString())
End Try
End Sub
End Class
Comentários
A tabela abaixo mostra informações sobre cabeçalhos e permissões sobre esta operação.
| Uso do Cabeçalho SOAP | (Em) TrustedUserHeaderValue (Fora) ServerInfoHeaderValue |
| Modo Nativo Necessário Permissões | ExecuteAndView E (CreateAnySubscription OU CreateSubscription) |
| Permissões Necessárias no Modo SharePoint | <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> E (<xref:Microsoft.SharePoint.SPBasePermissions.ManageAlerts> OU <xref:Microsoft.SharePoint.SPBasePermissions.CreateAlerts>) |
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 TimedSubscription evento, 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 assemelhar à 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 a TimedSubscription for uma programação compartilhada, 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 System.Xml.Serialization.XmlSerializer classe para converter automaticamente sua classe objeto em uma string XML.
Se o evento for uma SnapshotUpdated assinatura, o valor de MatchData deve ser null (ou Nothing no Visual Basic).
Quando esse método é usado, ele estabelecerá a LastExecutedSpecified propriedade da assinatura em false, a Status propriedade da assinatura em new subscription, e todas as propriedades da assinatura Activese objecem a false. As ModifiedBy propriedades e ModifiedDate do relatório também foram atualizadas.
Qualquer cronograma especificado no MatchData parâmetro deve estar no mesmo sítio e no ItemPath.