Lingua

ReportingService2005.CreateSubscription Metodo

Definizione

Crea un abbonamento per un report specificato nel database del server di report.

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

Parametri

Report
String

Il nome completo del percorso del report per cui creare un abbonamento.

ExtensionSettings
ExtensionSettings

Un oggetto che contiene una lista di impostazioni specifiche per l'estensione ExtensionSettings di consegna.

Description
String

Una descrizione significativa che viene mostrata agli utenti.

EventType
String

Il tipo di evento che attiva l'abbonamento. I valori validi sono TimedSubscription o SnapshotUpdated.

MatchData
String

I dati associati al parametro specificato EventType . Questo parametro viene utilizzato da un evento per abbinare l'abbonamento a un evento che è stato attivato.

Parameters
ParameterValue[]

Un array di ParameterValue oggetti che contiene un elenco di parametri per il report.

Valori restituiti

Un ID di abbonamento, che identifica in modo univoco l'abbonamento nel database del server di report.

Esempio

Per compilare questo esempio di codice, devi fare riferimento al WSDL di Reporting Services e importare determinati namespace. Per maggiori informazioni, vedi Compiling and Conducting Code Examples. Il seguente esempio di codice viene utilizzato CreateSubscription per aggiungere un nuovo abbonamento al database del server di rapporti:

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

Commenti

La tabella sottostante mostra informazioni sull'intestazione e sui permessi di questa operazione.

Intestazioni SOAP (Dentro) BatchHeaderValue

(Fuori) ServerInfoHeaderValue
Autorizzazioni necessarie ExecuteAndView E (CreateAnySubscription OPPURE CreateSubscription)

Puoi usare il GetExtensionSettings metodo per recuperare una lista di impostazioni richieste per un'estensione di consegna. Devi passare i valori per queste impostazioni richieste nel ExtensionSettings parametro. Per informazioni sulle impostazioni di consegna e-mail, consulta le Impostazioni di estensione di consegna di Reporting Services.

Il valore del EventType parametro deve corrispondere a un evento configurato per il server di report. I due eventi utilizzati per creare abbonamenti sono TimedSubscription e SnapshotUpdated. Usa il ListEvents metodo per restituire un elenco di tutti gli eventi configurati per il server di report.

Il valore del MatchData parametro dipende dal tipo di evento. Se l'evento è un evento TimedSubscription , è richiesto un ScheduleDefinition oggetto come MatchData parametro. Devi prima serializzare l'oggetto ScheduleDefinition come XML per poterlo passare come valore di stringa e creare un abbonamento basato sul programma. La struttura XML potrebbe assomigliare a quella nel seguente esempio:

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

Il valore dell'elemento StartDateTime quando passato come stringa XML dovrebbe corrispondere al formato di data ISO 8601. Questo standard internazionale di data e ora è il formato esteso CCYY-MM-DDThh:mm:ss+/-Z, dove "CC" rappresenta il secolo, "YY" l'anno, "MM" il mese e "DD" il giorno. La lettera "T" indica il separatore data e ora e "hh", "mm", "ss" rappresentano rispettivamente ora, minuto e secondo. Questa rappresentazione può essere immediatamente seguita da una "Z" per indicare il Tempo Universale Coordinato (UTC). Per indicare il fuso orario, rappresentato come la differenza tra l'ora locale e il Tempo Universale Coordinato, "Z" è preceduta da un segno "+" o "-", seguito dalla differenza rispetto all'UTC rappresentata come hh:mm.

Se la definizione di schedule per un TimedSubscription è un schedule condiviso, devi passare l'ID schedule del programma condiviso come MatchData parametro. L'ID dell'elenco viene trasmesso come String, ad esempio, "4608ac1b-fc75-4149-9e15-5a8b5781b843". L'ID dell'schedule può essere ottenuto chiamando il ListSchedules metodo.

Puoi usare la classe XmlSerializer per convertire automaticamente la tua classe oggetto in una stringa XML. Per maggiori informazioni sulla classe XmlSerializer, consulta "System.Xml.XmlSerializer Class" nella documentazione Microsoft .NET Framework.

Se l'evento è un abbonamento SnapshotUpdated, il valore di MatchData dovrebbe essere null (o Nothing in Visual Basic).

Usando questo metodo si stabilisce la LastExecutedSpecified proprietà della sottoscrizione a false, la Status proprietà della sottoscrizione a new subscription, e tutte le proprietà dell'abbonamento Active oggetto a false. Le ModifiedBy proprietà e ModifiedDate del rapporto sono state aggiornate.

Si applica a