ReportingService2005.CreateSubscription Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea una sottoscrizione 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
Nome e percorso completo del report per il quale creare una sottoscrizione.
- ExtensionSettings
- ExtensionSettings
Oggetto ExtensionSettings contenente un elenco di impostazioni specifiche dell'estensione per il recapito.
- Description
- String
Descrizione significativa visualizzata agli utenti.
- EventType
- String
Tipo di evento che attiva la sottoscrizione. I valori validi sono TimedSubscription
o SnapshotUpdated
.
- MatchData
- String
Dati associati al parametro specificato EventType
. Questo parametro viene utilizzato da un evento per individuare una corrispondenza tra la sottoscrizione e un evento generato.
- Parameters
- ParameterValue[]
Matrice di oggetti ParameterValue contenente un elenco di parametri per il report.
Restituisce
ID di sottoscrizione che identifica in modo univoco la sottoscrizione nel database del server di report.
Esempio
Per compilare questo esempio di codice, è necessario fare riferimento alla Reporting Services WSDL e importare determinati spazi dei nomi. Per altre informazioni, vedere Compilazione ed esecuzione di esempi di codice. Nell'esempio di codice seguente viene usata CreateSubscription per aggiungere una nuova sottoscrizione al database del server di report:
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
Nella tabella seguente vengono mostrate le informazioni sull'intestazione e sulle autorizzazioni relative a questa operazione.
Intestazioni SOAP | (In) BatchHeaderValue (Out) ServerInfoHeaderValue |
Autorizzazioni necessarie | ExecuteAndView AND (CreateAnySubscription OR CreateSubscription) |
È possibile utilizzare il GetExtensionSettings metodo per recuperare un elenco delle impostazioni necessarie per un'estensione per il recapito. È necessario passare i valori per queste impostazioni necessarie nel ExtensionSettings
parametro . Per informazioni sulle impostazioni di recapito tramite posta elettronica, vedere Reporting Services Impostazioni dell'estensione per il recapito.
Il valore del EventType
parametro deve corrispondere a un evento configurato per il server di report. I due eventi usati per creare sottoscrizioni sono TimedSubscription e SnapshotUpdated. Utilizzare 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, come parametro è necessario MatchData
un ScheduleDefinition oggetto . È necessario prima serializzare l'oggetto ScheduleDefinition come XML per passarlo come valore stringa e creare una sottoscrizione in base alla pianificazione. La struttura XML potrebbe essere simile a quella nell'esempio seguente:
<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 deve corrispondere al formato di data ISO 8601. Questo standard di data e ora internazionale è il formato esteso CCYY-MM-DDThh:mm:ss+/-Z dove "CC" rappresenta il secolo, "AA" l'anno, "MM" il mese e "DD" il giorno. La lettera "T" è il separatore di data e ora e "hh", "mm", "ss" rappresentano rispettivamente ora, minuto e secondo. Questa rappresentazione può essere immediatamente seguita da una "Z" per indicare l'ora UTC (Coordinated Universal Time). Per indicare il fuso orario, rappresentato come differenza tra l'ora locale e l'ora universale coordinata, "Z" è preceduto da un segno "+" o "-", seguito dalla differenza rispetto all'ora UTC rappresentata come hh:mm.
Se la definizione di pianificazione per timedSubscription è una pianificazione condivisa, è necessario passare l'ID pianificazione della pianificazione condivisa come MatchData
parametro . L'ID pianificazione viene passato come String
, ad esempio , "4608ac1b-fc75-4149-9e15-5a8b5781b843". L'ID pianificazione può essere ottenuto chiamando il ListSchedules metodo .
È possibile utilizzare la classe XmlSerializer per convertire automaticamente la classe oggetto in una stringa XML. Per altre informazioni sulla classe XmlSerializer , vedere "System.Xml. Classe XmlSerializer" nella documentazione di Microsoft .NET Framework.
Se l'evento è una sottoscrizione SnapshotUpdated , il valore di MatchData
deve essere null
(o Nothing
in Visual Basic).
L'utilizzo di questo metodo imposta la LastExecutedSpecified proprietà della sottoscrizione su false
, la Status proprietà della sottoscrizione su new subscription
e tutte le proprietà dell'oggetto della Active sottoscrizione su false
. Vengono aggiornate anche le ModifiedBy proprietà e ModifiedDate del report.